亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

隱馬爾可夫模型結果(解碼)每次都會改變

隱馬爾可夫模型結果(解碼)每次都會改變

忽然笑 2023-09-19 17:03:22
我使用 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 = 3sProb = 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_ = eProboreder1 = np.array([order]).Tresult= 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])我想知道的是如何獲得每次運行的恒定值或如何最終確定模型。感謝您提前的答復。
查看完整描述

1 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

隱馬爾可夫模型 (HMM) 是隨機的 - 它們使用隨機數生成器來幫助做出決策。因此,如果多次運行代碼,每次執行都會不同,因為幕后使用的隨機數不同。

如果您想讓每次運行都使用相同的隨機數序列,則需要設置隨機數“種子”。查看hmm文檔以了解如何設置種子。將其設置為固定值將確保每次執行都使用相同的隨機數序列,并且每次運行都會產生相同的結果。

最終確定模型的問題遠遠超出了本網站的范圍。本質上,您必須了解 HMM、它們如何工作、它們做出什么假設,以及您的用例如何符合(或不符合!)這些假設。然后,您使用最佳判斷結合嚴格的測試/培訓來確定最終的參數化。


查看完整回答
反對 回復 2023-09-19
  • 1 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號