使用HIdden Markov模型进行预测

时间:2013-09-28 17:13:12

标签: machine-learning scikit-learn prediction hidden-markov-models markov

假设有一系列观察,例如。 [1,2,3,5,5,5,2,3,2,3, ..., 3, 4]。我试图在Scikit中使用HMM的当前实现 - 学习预测该观察序列的下一个值。我有2个问题。

  1. 鉴于一系列观察结果,我如何预测下一次观察(如上所述)?

  2. 鉴于n个观察的许多序列和那些序列的n + 1个观测值,HMM可用于预测n个观测值的新序列的第(n + 1)个观测值吗?如果是这样的话?

  3. 我无法从文档中了解到这一点。

    我发现可能duplicate,但没有说明如何在Scikit中使用HMM - 学习预测序列中的下一个值。

3 个答案:

答案 0 :(得分:10)

HMM不适合这个问题。他们擅长预测完全观察到的序列的标签(隐藏状态),而不是完成序列。尝试在观察窗口上训练分类器或回归模型,然后将其用于预测。即在训练时,对于每个给定序列中的所有位置(i, ..., i + k),将模型观察i + k + 1作为特征并观察i作为目标。在测试时,将最后k个观察结果作为要素提供。

答案 1 :(得分:4)

这是一个时间序列任务,没有理由相信HMM会在这里工作。

我建议你看一下时间序列方法---有一系列名为ARIMA的方法可以很好地运作。

答案 2 :(得分:1)

scikit非常清楚培训HMM模型,请查看http://scikit-learn.org/stable/modules/hmm.html

HMM可用于对值列表进行采样,而每个预测仅取决于先前的状态。