全文下载链接:http://tecdat.cn/?p=7973
贝叶斯隐马尔可夫模型是一种用于分割连续多变量数据的概率模型。该模型将数据解释为一系列隐藏状态生成(点击文末“阅读原文”获取完整代码数据)。
相关视频
每个状态都是重尾分布的有限混合,具有特定于状态的混合比例和共享的位置/分散参数。
该模型中的所有参数都配备有共轭先验分布,并通过变化的贝叶斯(vB)推理算法学习,其本质上与期望最大化相似。该算法对异常值具有鲁棒性,并且可以接受缺失值。
本文从未知的BRHMM生成一组数据序列 参数,并仅从这些数据中估算出 生成它们的模型。结果绘制为 时间序列
设置状态,符号和特征的数量
NumState=2;
NumSym=3;
NumFeat=5;
设置序列数,每个序列点数和缺失值
NumSeq=2;
NumPoint=100;
NumMiss=20;
设置参数生成选项。TransParam=1/5
EmissParam=1/5;
LocParam=2;
DispParam=5;
设置采样选项
NumDeg=5;
NumObs=1000;
打印 和显示状态
fprintf('\\n')
fprintf('Sampling data ... ')
生成用于采样的参数
\[Trans,Emiss,Loc,Disp\]=GenParam(NumState,NumSym,NumFeat,...
TransParam,EmissParam,LocParam,DispParam);


点击标题查阅往期内容


左右滑动查看更多

创建用于采样的模型
Obj= bhnn(NumState,NumSym,NumFeat);
设置超参数
Obj.TransWeight=Trans;
Obj.TransStren(:)=NumObs;
Obj.EmissWeight=Emiss;
Obj.EmissStren(:)=NumObs;
Obj.CompLoc=Loc;
Obj.CompScale(:)=NumObs;
Obj.CompDisp=Disp;
Obj.CompPrec(:)=max(NumObs,NumFeat);
采样数据并随机删除值
更新状态
fprintf('Done\\n')
fprintf('Estimating model ... ')
创建估计模型
Obj=BHMM(NumState,NumSym,NumFeat);
约束过渡参数
Obj.TransWeight=Trans;
Obj.TransStren(:)=NumObs;
估计模型和状态概率
更新状态

绘制结果

% 更新状态
fprintf('Done\\n')
fprintf('\\n')
end



本文摘选《matlab贝叶斯隐马尔可夫hmm模型实现》,点击“阅读原文”获取全文完整资料。
点击标题查阅往期内容
欲获取全文文件,请点击左下角“阅读原文”。




欲获取全文文件,请点击左下角“阅读原文”。

文章转载自拓端数据部落,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。








