我尝试从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))
我期望在区间< 0,1>中的数字,但是给出非常低的负值。 例如,上面的分数返回-554.979039475。我不明白这意味着什么。
拜托,请问有人可以告诉我吗?
来自doc:
得分(obs):计算模型下的对数概率
返回:对象的对数可能性。
答案 0 :(得分:3)
日志概率是概率的对数。在这种情况下,概率是
>>> np.exp(-554.979039475)
9.4550881914378009e-242