在 hmmlearn Python 库的帮助下预测 HMM 的下一个状态
Predict the next state in an HMM with the help of hmmlearn Python library
我是统计分析新手。我将详细描述我的问题如下:
我有一个数据集如下:
ObjectID Timestamp State
1 t1 1
1 t2 3
1 t3 5
1 t4 2
2 t11 2
2 t22 5
2 t33 3
2 t44 1
同样如此。
状态总数固定为20
。每个对象都是相似的,可以归为一个class。所以最后,我得到了属于相似 class 的每个对象的可变长度状态序列及其各自的时间戳。
所以,我想为这种类型的数据集训练一个 HMM 模型,并在相应的输入是先前状态的序列时预测下一个状态作为输出。
那么,我该如何解决这类问题以及我需要使用 hmmlearn
Python 库实现的参数是什么。任何代码帮助也会更好。
我想阅读 hmmlearn
库的文档至少可以帮助您入门。所以基本上,在更简单的情况下:
from hmmlearn import hmm
# Setting the HMM structure. n_component is the number of hidden states
mode = hmm.MultinomialHMM(n_components=2)
# Training the model with your data
model.fit(your_data)
# Predicting the states for the observation sequence X (with Viterbi)
Z = model.predict(your_data)
为了预测下一个输出的状态,您可以使用从 Viterbi 序列(HMM 是无记忆过程)推断的最后状态以及转移矩阵。从表示系统从最后一个状态到其他状态的转换的概率质量函数,您可以绘制模型将处于的下一个状态。
在我对此的回答中 question 对最后一点进行了详细说明。
我是统计分析新手。我将详细描述我的问题如下: 我有一个数据集如下:
ObjectID Timestamp State
1 t1 1
1 t2 3
1 t3 5
1 t4 2
2 t11 2
2 t22 5
2 t33 3
2 t44 1
同样如此。
状态总数固定为20
。每个对象都是相似的,可以归为一个class。所以最后,我得到了属于相似 class 的每个对象的可变长度状态序列及其各自的时间戳。
所以,我想为这种类型的数据集训练一个 HMM 模型,并在相应的输入是先前状态的序列时预测下一个状态作为输出。
那么,我该如何解决这类问题以及我需要使用 hmmlearn
Python 库实现的参数是什么。任何代码帮助也会更好。
我想阅读 hmmlearn
库的文档至少可以帮助您入门。所以基本上,在更简单的情况下:
from hmmlearn import hmm
# Setting the HMM structure. n_component is the number of hidden states
mode = hmm.MultinomialHMM(n_components=2)
# Training the model with your data
model.fit(your_data)
# Predicting the states for the observation sequence X (with Viterbi)
Z = model.predict(your_data)
为了预测下一个输出的状态,您可以使用从 Viterbi 序列(HMM 是无记忆过程)推断的最后状态以及转移矩阵。从表示系统从最后一个状态到其他状态的转换的概率质量函数,您可以绘制模型将处于的下一个状态。
在我对此的回答中 question 对最后一点进行了详细说明。