python - 使用多类观察序列训练 hmmlearn HMM

标签 python hidden-markov-models hmmlearn

我有两个训练集(已知类别的观察值)代表我数据中的两种可能状态。我想让 hmmlearn 估计开始, 来自这两个训练集的转换和发射概率。

我的数据是 0-1 之间的值列表。我已经使用保守的阈值将数据分成粗略的组“A”和“B”。我想使用 HMM 来优化我的数据改变状态的点。

对于单个训练/测试序列 X,我会这样做:

X = [0, 1, 1, 1, 0.1, 0.015, 0.01, 0.001, 0.005, 0.001, 0.2, 1, 0.8, 1, 1, 0.3]
states = ["A", "B"]

#Fit model, auto set probabilities
model = hmm.MultinomialHMM(n_components=2, covariance_type="full")
model.fit([X])

#Predict states
Z = model.predict(X)

#Predict a sequence of hidden states based on visible states
logprob, state = model.decode(X, algorithm="viterbi")
print "States:", ", ".join(map(lambda x: states[x], state))
>>> States: A, B, B, B, B, A, A, A, A, A, B, B, B, B, B, B

我想知道如何分别训练状态A和状态B。

最佳答案

fit 方法采用观察序列列表。在您的示例中,假设您的 X 表示为 X1,而另一组表示为 X2,您只需运行:

model.fit([X1,X2])

关于python - 使用多类观察序列训练 hmmlearn HMM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32131086/

相关文章:

python - 意外的关键字参数 'buffering' - python 客户端

Python selenium send_keys 在完成第一个字符串之前切换输入

python - 将时区设置为 Pandas 数据框

python - 如何解决 Jupyter Notebook 中 No module named 'hmmlearn' 错误

python - 在 Python 中使用 hmmlearn 学习字符序列

python - 为 hmmlearn 格式化数据

python - 将 python 的 sklearn 模块与自定义数据集一起使用

python - 马尔可夫链转移矩阵

opencv - 使用隐马尔可夫模型进行手部 Action 识别

speech-recognition - HTK - HMM 模型的 MFCC 和输入 WAV 文件代表什么?