我使用 HMM 来预测人类的行为。隐藏状态分别是“休息、步行、吃饭”和“观察”,分别是“室内”、“室外”和“零食”。
hState = ['Rset', 'Walk', 'Eat']
Obs = ['Inside 1', 'Outside 2', 'Snack 3']
order = [1, 2, 1, 2, 3 ,2, 2, 3, 1, 2 ,2, 2, 1, 2]
no = 3
sProb = np.array([0.1, 0.8, 0.1])
tProb = np.array([[0.2, 0.2, 0.6],
[0.1, 0.8, 0.1],
[0.6, 0.1, 0.3]])
eProb = np.array([[0.7, 0.2, 0.1],
[0.1, 0.6, 0.3],
[0.2, 0.3, 0.5]])
h = hmm.MultinomialHMM(3, "full", sProb, tProb)
h.emissionprob_ = eProb
oreder1 = np.array([order]).T
result= hmm.GaussianHMM(n_components=no).fit(oreder1)
result.predict(oreder1)
但每当我再次运行代码时,结果就会改变。结果序列正确,但隐藏状态id发生变化 第一次运行的结果
array([2, 1, 2, 1, 0, 1, 1, 0, 2, 1, 1, 1, 2, 1])
第二次运行的结果
array([0, 1, 0, 1, 2, 1, 1, 2, 0, 1, 1, 1, 0, 1])
我想知道的是如何获得每次运行的恒定值或如何最终确定模型。感谢您提前的答复。
慕标5832272
相关分类