日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

李航书上隐马尔科夫模型案例的实验结果复现

發布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 李航书上隐马尔科夫模型案例的实验结果复现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要是轉載自:
https://www.cnblogs.com/pinard/p/7001397.html

我自己加了些注釋以及修復了一個在python2.7下面運行的bug

1) 評估觀察序列概率。 給定模型λ=(A,B,π)和觀測序列O 計算P(O|λ)2)模型參數學習問題。 觀測序列O 輸出λ=(A,B,π)3)預測問題,也稱為解碼問題。 已知模型(A,B,π),觀測序列O(o1,o2,···,oT) 求令P(I|O)最大的狀態序列I=(i1,i2,···,iT)

第1個基恩問題和第3個基本問題:

# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') # @Author: appleyuchi # @Date: 2018-12-31 16:11:34 # @Last Modified by: appleyuchi # @Last Modified time: 2018-12-31 17:19:26import numpy as np from hmmlearn import hmm from math import log from math import e states = ["box 1", "box 2", "box3"] n_states = len(states)observations = ["red", "white"] n_observations = len(observations)start_probability = np.array([0.2, 0.4, 0.4])transition_probability = np.array([[0.5, 0.2, 0.3],[0.3, 0.5, 0.2],[0.2, 0.3, 0.5] ])emission_probability = np.array([[0.5, 0.5],[0.4, 0.6],[0.7, 0.3] ])model = hmm.MultinomialHMM(n_components=n_states) model.startprob_=start_probability#π model.transmat_=transition_probability#轉移概率A model.emissionprob_=emission_probability#摸取小球的概率Bseen = np.array([[0,1,0]]).T#這里的意思是輸入序列為(紅,白,紅)logprob, box = model.decode(seen, algorithm="viterbi") # print "observations=",observations # print "seen=",seen print"box=",boxprint"---------------下面是隱馬爾科夫第1個基本問題-------------------" # print e # print model.score(seen) print "《統計學習方法》P178的HMM第1個基本問題:\nP(O|λ)=",e**model.score(seen)print"---------------下面是隱馬爾科夫第2個基本問題-------------------"print"---------------下面是隱馬爾科夫第3個基本問題-------------------" print"The ball picked:", ", ".join(map(lambda x: observations[x], seen[0])) print"《統計學習方法》P187的HMM第3個基本問題", ", ".join(map(lambda x: states[x], box))

第二個基本問題:

# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8')import numpy as np from hmmlearn import hmmstates = ["box 1", "box 2", "box3"] n_states = len(states)observations = ["red", "white"] n_observations = len(observations) model2 = hmm.MultinomialHMM(n_components=n_states, n_iter=20, tol=0.01) X2 = np.array([[0,1,0,1],[0,0,0,1],[1,0,1,1]]) print"-------------------------------------------" model2.fit(X2) print "π=",model2.startprob_ print "A=",model2.transmat_ print "B=",model2.emissionprob_ print model2.score(X2) print"-------------------------------------------" model2.fit(X2) print "π=",model2.startprob_ print "A=",model2.transmat_ print "B=",model2.emissionprob_ print model2.score(X2) print"-------------------------------------------" model2.fit(X2) print "π=",model2.startprob_ print "A=",model2.transmat_ print "B=",model2.emissionprob_ print model2.score(X2) 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的李航书上隐马尔科夫模型案例的实验结果复现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。