0

我是统计分析的新手。我将详细描述我的问题如下: 我有一个数据集如下:

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。每个对象都是相似的,可以归为一类。所以最后,我有属于类似类的每个对象的可变长度状态序列及其各自的时间戳。

所以,我想为这种类型的数据集训练一个 HMM 模型,并在相应的输入是一系列先前状态时预测下一个状态作为输出。

那么,我该如何解决这类问题,以及我需要使用hmmlearnPython 库实现哪些参数。任何代码帮助也会更好。

4

1 回答 1

1

我想阅读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 是无记忆过程)推断出的最后一个状态以及转移矩阵。从代表系统从最后一个状态到其他状态的转换的概率质量函数,您可以绘制模型将处于的下一个状态。

在我对这个问题的回答中,更详细地阐述了最后一点。

于 2017-07-25T14:36:52.297 回答