国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

vertibi python 實現

zhangyucha0 / 2621人閱讀

摘要:題目闡釋算法實現。用實現的和表現層的轉移動態規劃問題,歸結到相鄰兩個之間存在轉移概率,轉移概率。難點三層循環,為了保留,計算每個的的概率,所以要嵌套在之外。

題目闡釋:

viterbi算法實現。 用python實現viterbi的hidden state 和 表現層的轉移
動態規劃問題,歸結到
    相鄰兩個step之間存在 state轉移概率,state2emibission轉移概率。
    計算后可以得到每個step的每個state max_probablity
    由于step_n依賴于 step_n-1,跟 step_n-2無關,所以可以一直如此往復,得到最后的max_prob
整個問題抽象為,下一個step依賴于上一個step的所有state,所以只需要計算每一層step的所有state的prbo即可。

難點:

三層for循環,為了保留,計算每個step的state的概率,所以要 next_state 嵌套在 source_state之外。

states=["Rainy","Sunny"]
observations=["walk","shop","clean"]
observations=("walk","clean","walk")

emission_probability={"Rainy":{"walk":0.1,"shop":0.4,"clean":0.5},
                   "Sunny": {"walk": 0.6, "shop": 0.3, "clean": 0.1}
                    }
trans_probability={"Rainy":{"Rainy":0.7,"Sunny":0.3},
                     "Sunny":{"Rainy":0.4,"Sunny":0.6}
                     }
start_probability={"Rainy":0.6,"Sunny":0.4}

def vertibi(states,objservations,start_prob,trans_prob,emi_prob):
    T={state:[start_prob[state],[state],start_prob[state]] for state in states}
    for objservation in objservations:
        U={}
        for next_state in states:
            total=0
            argmax=None
            valmax=0
            for source_state in states:
                prob,v_path,v_prob=T[source_state]
                p=emi_prob[source_state][objservation]*trans_prob[source_state][next_state]
                prob*=p
                v_prob*=p

                if v_prob>valmax:
                    valmax=v_prob
                    argmax=v_path+[next_state]
                    total+=prob
            U[next_state]=[total,argmax,valmax]
        T=U

    total = 0
    argmax = None
    valmax = 0
    for state in states:
        prob, v_path, v_prob=T[state]
        if v_prob>valmax:
            argmax=v_path
            total=prob
            valmax=v_prob
    return total,argmax,valmax

total,argmax,valmax=vertibi(states,observations,start_probability,trans_probability,emission_probability)
print(total)
print(argmax)
print(valmax)


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42110.html

相關文章

  • 結巴分詞原理

    摘要:我來到北京清華大學對應的狀態應該為其實和的區別就是對未成功切分的部分,沒有使用進行分詞。 介紹 結巴分詞是一個受大家喜愛的分詞庫,源碼地址為github,今天我們就跟進源碼,看一下結巴分詞的原理 原理 def cut(self, sentence, cut_all=False, HMM=True): The main function that...

    zzbo 評論0 收藏0
  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • Python源碼漫游指南(一)

    摘要:源碼漫游指南一作者秘塔科技算法研究員前幾天發布了第五屆頂級語言交互排行榜,語言繼續穩坐第一把交椅,并且相比去年的排行情況,拉開了與第二名的距離去年第二名的排名得分為。包含字節碼相關的底層抽象。字節碼對象的實現。源文件執行結束后的清理工作。 Python源碼漫游指南(一) 作者:秘塔科技算法研究員 Qian Wan 前幾天IEEE Spectrum發布了第五屆頂級語言交互排行榜,Pyth...

    dackel 評論0 收藏0
  • python 和 ruby的對比

    摘要:的解析器實現更成熟,第三方庫質量高解析器盡管已經有了很大的性能提升和很多新的功能,但是從源代碼實現的角度來說,基本上是通過在源代碼上打來增加功能的。相對而言,解析器更成熟,也比較穩定。 最近在考慮學習一門后端語言,在ruby和python直接猶豫,然后自己做了一些對比,希望能幫到有同樣問題的你。 一、異同對比選擇1、Python和ruby的相同點: 都強調語法簡單,都具有更一般的表達...

    ghnor 評論0 收藏0

發表評論

0條評論

zhangyucha0

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<