假设有一系列观察,例如。 [1,2,3,5,5,5,2,3,2,3, ..., 3, 4]
。我试图在Scikit中使用HMM的当前实现 - 学习预测该观察序列的下一个值。我有2个问题。
鉴于一系列观察结果,我如何预测下一次观察(如上所述)?
鉴于n个观察的许多序列和那些序列的n + 1个观测值,HMM可用于预测n个观测值的新序列的第(n + 1)个观测值吗?如果是这样的话?
我无法从文档中了解到这一点。
我发现可能duplicate,但没有说明如何在Scikit中使用HMM - 学习预测序列中的下一个值。
答案 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可用于对值列表进行采样,而每个预测仅取决于先前的状态。