你能举个例子说明如何在Python中训练具有定制发射概率的HMM吗?

时间:2018-04-27 13:07:03

标签: python machine-learning computer-vision hidden-markov-models

基本上,我正在阅读文档https://hmmlearn.readthedocs.io/en/latest/api.html#hmmlearn.base._BaseHMM,并尝试使用_BaseHMM类。但是对Python来说,我遇到了很多麻烦。更一般地说,我正在尝试验证HMM可以从顺序数据中学习并为我们提供更准确的预测。朝着这个方向,我正在考虑算法将6个图像的类别确定为3个类别的情况,并且我认为样本是有序的或有序的。假设我为此HMM定义了参数。我希望看到的是这个HMM的输出和准确性自定义排放概率。参见下面的代码,我确定我犯了一个基本错误,但示例代码将是太棒了!

import numpy as np
from hmmlearn import hmm

#confusion matrix
from sklearn.metrics import confusion_matrix

y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]

C_old= confusion_matrix(y_true, y_pred, labels=["cat", "ant", "bird"])

model = hmm.GaussianHMM(n_components=3, covariance_type="full")
model.startprob_ = np.array([0.333, 0.333, 0.333])
model.transmat_ = np.array([[0.5, 0.5, 0],
                             [0.5, 0, 0.5],
                             [0,   1, 0]])

X=y_true

from hmmlearn import _BaseHMM
hmm._base._BaseHMM._init(X,len(X))

我得到了:

ImportError: cannot import name _BaseHMM

请注意,我定义排放概率。现在,由于我的排放概率是定制的,我似乎要使用class _BaseHMM。这就是我被困住的地方,我真的很感激使用这个类的示例代码以及使用HMM后的最终混淆矩阵。我使用的是Python 2.7。

0 个答案:

没有答案