我是隐马尔可夫模型的新手。我理解了主要思想,我尝试了一些 Matlab 内置的 HMM 函数来帮助我理解更多。
如果我有一系列观察和相应的状态,例如
seq = 2 6 6 1 4 1 1 1 5 4
states = 1 1 2 2 2 2 2 2 2 2
我可以使用hmmestimate函数来计算转换和发射概率矩阵:
[TRANS_EST, EMIS_EST] = hmmestimate(seq, states)
TRANS_EST =
0.5000 0.5000
0 1.0000
EMIS_EST =
0 0.5000 0 0 0 0.5000
0.5000 0 0 0.2500 0.1250 0.1250
在这个例子中,观察只是一个单一的值。
下面的示例图片描述了我的情况。 如果我有状态:{Sleep, Work, Sport},并且我有一组观察结果:{lightoff, light on, heart rate>100 .....} 如果我使用数字来表示每个观察结果,在我的情况下每个state 同时有多个观察值,
seq = {2,3,5} {6,1} {2} {2,3,6} {4} {1,2} {1}
states = 1 1 2 2 2 2 2
我不知道如何在 Matlab 中实现这一点以获得转换和发射概率矩阵。我很迷茫,下一步该怎么办?我是否使用了正确的方法?
谢谢!