matlab hmm工具箱怎么用,如何使用hmm toolbox?

  • Post author:
  • Post category:其他


统计工具箱包含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