文档

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是可能的排放量。如果 k 发射不发生在seq,您可以设置PSEUDOE (i (k)是一个正数,表示序列中此类排放的预期数量的估计值seq

hmmestimate(…,Pseudotransitions PSEUDOTR)指定伪计数转换值。您可以使用此参数来避免对概率非常低的转换进行零概率估计,这些概率可能不会在样本序列中表示。PSEUDOTR应该是一个大小的矩阵——- - - - - -,在那里为隐马尔可夫模型中的状态数。如果 j 转变不会发生在,您可以设置PSEUDOTR (i, j)是一个正数,表示序列中这种转换的预期数量的估计值

假跃迁和假发射

如果一个特定的跃迁或发射的概率很低,那么跃迁可能永远不会在序列中发生,或者发射可能永远不会在序列中发生seq.在任何一种情况下,算法对于给定的跃迁或发射返回0的概率反式工作.您可以使用“Pseudotransitions”而且“Pseudoemissions”参数。最简单的方法是设置对应的项PSEUDOEPSEUDOTR1.例如,如果转换 j 不会发生在,设置PSEUDOTR(i,j) = 1.这就迫使反式(i, j)要积极。如果你对预期的转换数量有一个估计 j 在与。长度相同的序列中,以及转换的实际数量 j 发生在seq是大大低于你的期望,你可以设定吗PSEUDOTR (i, j)到预期的数字。这增加了的值反式(i, j).对于在您期望的频率的状态下确实发生的转换,设置相应的条目PSEUDOTR0的对应项不增加反式

如果您不知道状态序列,请使用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年。

R2006a之前介绍

这个话题有用吗?