在 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 对最后一点进行了详细说明。