【发布时间】:2014-04-28 14:32:46
【问题描述】:
我尝试从http://scikit-learn.org/stable/modules/hmm.html运行示例代码:
import numpy as np
from sklearn import hmm
startprob = np.array([0.6, 0.3, 0.1])
transmat = np.array([[0.7, 0.2, 0.1], [0.3, 0.5, 0.2], [0.3, 0.3, 0.4]])
means = np.array([[0.0, 0.0], [3.0, -3.0], [5.0, 10.0]])
covars = np.tile(np.identity(2), (3, 1, 1))
model = hmm.GaussianHMM(3, "full", startprob, transmat)
model.means_ = means
model.covars_ = covars
X, Z = model.sample(150)
model2 = hmm.GaussianHMM(3, "full")
model2.fit([X])
并在模型下对观测 X 的对数概率进行评分:
print (model2.score(X))
我希望区间 中的数字,但给出的负值非常低。 例如上面,分数返回 -554.979039475。我不明白这是什么意思。
请问,有人能给我建议吗?
来自文档:
score(obs):计算模型下的对数概率
返回:对 obs 的可能性进行日志记录。
【问题讨论】:
-
似乎很自然的问题是“如果概率应该在 0 和 1 之间,为什么我会得到正的对数似然分数?”当使用连续发射概率(高斯)时,可以有正对数似然。 blog.stata.com/2011/02/16/positive-log-likelihood-values-happen
标签: python python-3.x scikit-learn hidden-markov-models