在hmmlearn Python库的帮助下预测HMM中的下一个状态

时间:2017-07-10 10:43:04

标签: python machine-learning time-series hidden-markov-models hmmlearn

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

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模型,并在相应的输入是先前状态序列时预测下一个状态作为输出。

那么,我如何处理这类问题以及使用hmmlearn Python库需要实现的参数是什么。任何代码帮助也会更好。

1 个答案:

答案 0 :(得分:0)

我想阅读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) 库的文档会帮助你至少开始。所以基本上,在更简单的情况下:

ANT_HOME=/directory_where_ant_is_installed/actual_ant_directory
PATH=$PATH:$HOME/bin:$ANT_HOME/bin
export ANT_HOME PATH

为了预测下一个输出的状态,您可以使用从维特比序列推断的最后一个状态(HMM是无记​​忆过程)以及转换矩阵。从表示系统最后状态到其他状态的概率质量函数,您可以绘制模型的下一个状态。

在我对此question的回答中,详细阐述了最后一点。