Matlab隐马尔可夫模型数据预测

时间:2012-08-28 07:04:55

标签: matlab hidden-markov-models

我是隐藏马尔可夫模型(HMM)的新手,我现在正在尝试进行数据预测。考虑一个以非均匀间隔采样的正弦波,我想用这些数据来预测未来时刻的输出。我正在尝试使用matlab的统计工具箱。

问题似乎是在给出的例子中,我需要一个发射矩阵和一个转换矩阵来生成一个hmm模型。但基于我的数据,我如何评估这些矩阵?以及如何根据我的数据训练模型?

2 个答案:

答案 0 :(得分:3)

我是第二个slayton的回答。

转换矩阵只是一个州将转移到另一个州的概率列表。

隐藏 Markov模型假设您无法真正看到系统的状态(它是隐藏)。例如,假设你的邻居有一只狗。狗可能饿或满,这是狗的状态。你不能问狗是否饿了,你不能看到它的胃里面,所以状态对你是隐藏的(因为你只看到外面,在狗身上,每天短暂地你无法追踪到什么时候它会在里面吃,或者吃多少,如果是这样的话。)

然而,你知道,在它吃完并变满之后,它会在一段时间后再次变得饥饿(取决于最后吃多少,但你不知道它可能是随机的),当它很饿,它最终会进入室内并进食(尽管有饥饿感,它有时会因懒惰而坐在外面)。

鉴于这个系统,你不能看到狗什么时候饿了,什么时候没有。但是,您可以从狗是否发出呜呜声来推断。如果它在抱怨,它可能很饿。如果它快乐地吠叫,它可能已经满了。但仅仅因为它的抱怨并不意味着它的饥饿(也许它的腿受伤)而且只是树皮并不意味着充满(也许它很饿,但对某些东西感到兴奋)。然而,通常树皮在满满的时候就会出现,而在它饥饿时会发出呜呜声。它可能根本没有声音,也没有告诉你它的状态。

所以这是排放矩阵。 “饥饿”状态更可能“发出呜呜声”,完全和吠声同样如此。发射矩阵表示您将在每个给定状态下观察到的内容。

如果对发射矩阵使用方形单位矩阵,那么每个状态将始终发射,并且最终会得到非隐藏马尔可夫模型。

答案 1 :(得分:0)

matlab docs很好地描述了如何使用统计工具箱函数进行HMM。 “估算过渡和排放矩阵”部分可能会让您指出正确的方向。