普查工具箱包括5个与隐马尔可夫模型相干的函数:
hmmgenerate从一个马尔可夫模型发生一个事态序列和输出序列;
hmmestimate计算迁移和输出的极大似然估计;
hmmtrain从一个输出序列计算迁移和输出概率的极大似然估计; hmmviterbi计算一个隐马尔可夫模型最可能的事态改变过程; hmmdecode计算一个给定输出序列的后验事态概率。 下面局部推荐如何利用这些函数来分析隐马尔可夫模型。 1.发生一个测验序列
下面代码发生上面简介中模型的迁移和输出矩阵: TRANS=[.9.1;.05.95;];
EMIS=[1/6,1/6,1/6,1/6,1/6,1/6;... 7/12,1/12,1/12,1/12,1/12,1/12];
要从模型发生一个随机的事态序列和输出序列,利用hmmgenerate:
[seq,states]=hmmgenerate(1000,TRANS,EMIS);
输出中,seq是输出序列,states是事态序列。hmmgenerate在第0步从事态1开始,在第一步迁移到事态i1
,并归来i1作为事态的第一个入口。 2.估计事态序列
给定了迁移和输出矩阵TRANS和EMIS,函数hmmviterbi利用Viterbi算法计算模型给定输出序列seq最有可能
穿越的事态序列:
likelystates=hmmviterbi(seq,TRANS,EMIS);
likelystates是和seq一样长的序列。计算hmmvertibi的精度如下:
sum(states==likelystates)/length(states) ans=
0.8680
3.估计迁移和输出矩阵
函数hmmestimate和hmmtrain用于估计给定输出序列seq的迁移和输出矩阵TRANS和EMIS。
利用hmmestimate
[TRANS_EST,EMIS_EST]=hmmestimate(seq,states) TRANS_EST= 0.90650.0935 0.04060.9594 EMIS_EST=
0.14520.15160.15810.19680.15810.1903 0.58410.07540.09860.08120.08410.0768
由上面利用措施可知,hmmestimate函数必需预先懂得了获得输出序列seq,以及获得此收获的事态改变序
列。
利用hmmtrain
万一不懂得事态序列,然而懂得TRANS和EMIS的初始推断,那就能够利用hmmtrain来估计TRANS和EMIS。
假想已知如下初始推断: TRANS_GUESS=[.85.15;.1.9];
EMIS_GUESS=[.17.16.17.16.17.17;.6.08.08.08.0808]; TRANS和EMIS的估计如下:
[TRANS_EST2,EMIS_EST2]=hmmtrain(seq,TRANS_GUESS,EMIS_GUESS)
TRANS_EST2= 0.92070.0793 0.03700.9630 EMIS_EST2=
0.17920.14370.14360.18550.15090.1971 0.57740.07750.10420.08400.08590.0710
hmmtrain利用迭代算法来不时修正TRANS_GUESS和EMIS_GUESS,使得每一步修正获得的矩阵都更加可能发生观测序列seq。目前后两个两次迭代矩阵的改变在一个小的容错范围内时,迭代静止。万一算法无法到达容错的范围,则迭代到达定然次数时就会静止,并归来一个警告提醒。默认的最大迭代次数为100。
万一算法达不到目标偏差范围,则能够穿越添置迭代次数和/或加大容错偏差值来使其获得较轻便收获:
改
换
迭
代
次
数
maxiter
:
hmmtrain(seq,http://www..com/doc/a48759454.html, TRANS_GUESS,EMIS_GUESS,'maxiterations',maxiter)
改
换
容
错
偏
差
tol
:
hmmtrain(seq,TRANS_GUESS,EMIS_GUESS,'tolerance',tol)
波及hmmtrain输出的矩阵可靠性的两点因素:
(1)算法收敛于局部极值,这点能够利用不同的初始推断矩阵来试探处理;
(2)序列seq太短而无法很好的训练矩阵,能够试探利用较长的序列。
4.估计后验事态概率(不太会意)
一个输出序列seq的后验事态概率是在特定事态下的模型发生在seq中一个输出的条件概率。假定seq曾经给出,你能够利用hmmdecode获得后验事态概率。
PSTATES=hmmdecode(seq,TRANS,EMIS)
输出为一个M*N的矩阵。M是事态的个数,L是seq的长度。PSTATES(i,j)是模型在事态i时,发生seq第j个输出的条件概率。
因篇幅问题不能全部显示,请点此查看更多更全内容