hmmestimate
基于排放和状态的隐马尔可夫模型参数估计
语法
[TRANS,EMIS] = hmmestimate(seq,states)
hmmestimate(…,“符号”,符号)
hmmestimate(…,Statenames Statenames)
hmmestimate(…,Pseudoemissions PSEUDOE)
hmmestimate(…,Pseudotransitions PSEUDOTR)
描述
[TRANS,EMIS] = hmmestimate(seq,states)
计算转移的最大似然估计,反式
,和发射,工作
,序列隐马尔可夫模型的概率,seq
,状态已知,州
.
hmmestimate(…,“符号”,符号)
指定发出的符号。符号
可以是数值数组或符号名称的单元格数组。默认符号是整数1到N,其中N是可能排放的数量。
hmmestimate(…,Statenames Statenames)
指定状态的名称。STATENAMES
可以是数值数组或状态名称的单元格数组。默认状态名为1 ~米
,在那里米
是状态数。
hmmestimate(…,Pseudoemissions PSEUDOE)
指定矩阵中的伪计数发射值PSEUDOE
.使用此参数可以避免对样本序列中可能没有表示的概率非常低的排放进行零概率估计。PSEUDOE
应该是一个大小的矩阵米——- - - - - -n,在那里米隐马尔可夫模型的状态数和n是可能的排放量。如果
发射不发生在seq
,您可以设置PSEUDOE (i (k)
是一个正数,表示序列中此类排放的预期数量的估计值seq
.
hmmestimate(…,Pseudotransitions PSEUDOTR)
指定伪计数转换值。您可以使用此参数来避免对概率非常低的转换进行零概率估计,这些概率可能不会在样本序列中表示。PSEUDOTR
应该是一个大小的矩阵米——- - - - - -米,在那里米为隐马尔可夫模型中的状态数。如果
转变不会发生在州
,您可以设置PSEUDOTR (i, j)
是一个正数,表示序列中这种转换的预期数量的估计值州
.
假跃迁和假发射
如果一个特定的跃迁或发射的概率很低,那么跃迁可能永远不会在序列中发生州
,或者发射可能永远不会在序列中发生seq
.在任何一种情况下,算法对于给定的跃迁或发射返回0的概率反式
或工作
.您可以使用“Pseudotransitions”
而且“Pseudoemissions”
参数。最简单的方法是设置对应的项PSEUDOE
或PSEUDOTR
来1
.例如,如果转换
不会发生在州
,设置PSEUDOTR(i,j) = 1
.这就迫使反式(i, j)
要积极。如果你对预期的转换数量有一个估计
在与。长度相同的序列中州
,以及转换的实际数量
发生在seq
是大大低于你的期望,你可以设定吗PSEUDOTR (i, j)
到预期的数字。这增加了的值反式(i, j)
.对于在您期望的频率的状态下确实发生的转换,设置相应的条目PSEUDOTR
来0
的对应项不增加反式
.
如果您不知道状态序列,请使用hmmtrain
对模型参数进行估计。
例子
Trans = [0.95,0.05;0.10、0.90);Emis = [1/6 1/6 1/6 1/6 1/6 1/6;1/10 1/10 1/10 1/10 1/2];[seq,states] = hmmgenerate(1000,trans,emis);[estimateTR,estimateE] = hmmestimate(seq,states);
参考文献
[1]德宾,R., S.埃迪,A.克拉夫,G.米奇森。生物序列分析.英国剑桥:剑桥大学出版社,1998年。