1

假設有一系列觀察結果, [1,2,3,5,5,5,2,3,2,3, ..., 3, 4]。我試圖在Scikit-learn中使用當前的HMM實現來預測這個觀察序列的下一個值。我有2個關於這個問題。使用HIdden馬爾科夫模型進行預測

  1. 給定一系列觀察值,我如何預測下一個觀測值(如上所述)?給定n個觀測值的許多序列和這些序列的n + 1個觀測值,可以使用HMM來預測n個觀測值的新序列的第(n + 1)個觀測值嗎?如果是這樣如何?

我無法從文檔中瞭解到這一點。

我發現了一個可能的duplicate,但它沒有詳細說明如何在Scikit-learn中使用HMM來預測序列中的下一個值。

回答

9

HMM不適合這個問題。他們善於預測完全觀察序列的標籤(隱藏狀態),而不是完成一個序列。嘗試在觀測窗口上訓練分類器或迴歸模型,然後將其用於預測。即在訓練時間給出模型觀測值(i, ..., i + k)作爲特徵並且觀察i + k + 1作爲目標,針對每個給定序列中的所有位置i。在測試時,將最後的k觀察結果作爲特徵。

+0

是的。我意識到HMM不會在這裏工作。謝謝你的提示。 – maheshakya

1

scikit是關於訓練HMM模型非常清晰,檢查此http://scikit-learn.org/stable/modules/hmm.html

HMM可用於採樣值的列表,而每個預測僅依賴於以前的狀態。

+0

我已經看過這個。如何使用一系列值來訓練模型並獲取該值列表? – maheshakya

+0

使用fit()方法時,[X]應該是形狀(n_i,n_features)。如果我們只是想用一系列觀測值來訓練模型,那麼n_features的值是什麼? – maheshakya

+0

如果我們要隱藏狀態作爲特徵,我們怎麼能提前知道這些隱藏的狀態? – maheshakya

4

這是一個時間序列任務,沒有理由相信HMM會在這裏工作。

我建議你看看時間序列方法---有一個稱爲ARIMA的方法家族應該很好地工作。

相關問題