![](/img/trans.png)
[英]How to handle multiple sequences in training Hidden Markov Model with hmmlearn?
[英]How to implement Hidden Markov Model on multiple columns?
我在實現 HMM model 時遇到問題。 我從 pandas dataframe 開始,我想使用兩列來預測隱藏的 state。 我正在使用 hmmlearn package。
我正在按照 hmmlearn 的說明“使用多個序列” https://hmmlearn.readthedocs.io/en/latest/tutorial.html#multiple-sequences
我遵循下面的代碼,但將 X1 和 X2 設置為我的列
X1 = [[0.5], [1.0], [-1.0], [0.42], [0.24]]
X2 = [[2.4], [4.2], [0.5], [-0.24], [0.24]]
X = np.concatenate([X1, X2])
lengths = [len(X1), len(X2)]
hmm.GaussianHMM(n_components=3).fit(X, lengths)
predictions=model.predict(X)
問題是,當我嘗試預測 state 而不是組合序列來創建 1 個預測時,我得到了每個觀察的預測。 所以在這個例子中,我想要 5 個觀察結果,但我得到 10 個。有沒有辦法將 dataframe 的特征作為自變量合並以獲得 1 個組合預測?
目前,您正在為 model 提供兩個樣本序列,每個序列有 5 個觀察值,只有一個特征 - 所以總共有 10 個觀察值。 您想要的是具有 5 個觀察值的單個序列,具有兩個特征。
會是這樣的:
X = [[0.5, 2.4], [1.0, 4.2], [-1.0, 0.5], [0.42, -0.24], [0.24, 0.25]]
lengths = [len(X)]
hmm.GaussianHMM(n_components=3).fit(X, lengths)
predictions=model.predict(X)
那么你將只有五個預測。
如果您想像示例中那樣使用X1
和X2
構建X
變量,則可以使用zip
來實現:
X = [[x1[0], x2[0]] for x1, x2 in zip(X1, X2)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.