2016-04-25 70 views
0

我已經介紹了樸素貝葉斯分類方法(Multinomial NB),並參考了Michael Sipser在其「計算理論」一書中如何描述它。理解算法 - 多項樸素貝葉斯

我在看的培訓和應用多項NB描述的算法,現分述如下:

enter image description here

然而,解釋算法的某些方面,當我來到一個損失。例如,在TRAINMULTINOMIALNB(C,d)第6行:

  • 究竟CONCATENATE_TEXT_OF_ALL_DOCS_IN_CLASS(d,C)嗎?

到目前爲止,我理解如下。假設我們有三個 - 3 - 類 「電影」 文件和 「歌」:

MOVIES 
    DOC1 = "big fish" 
    DOC2 = "big lebowski" 
    DOC3 = "mystic river" 

SONGS 
    DOC1 = "purple rain" 
    DOC2 = "crying in the rain" 
    DOC3 = "anaconda"  

應用CONCATENATE_TEXT_OF_ALL_DOCS_IN_CLASS(d,C)後,你會不會再被留下,說字符串:

String concatenatedMovies = "big fish big lebowski mystic river" 
String concatenatedSongs = "purple rain crying in the rain anaconda" 

這是正確的嗎? 任何幫助理解這一點非常感謝。

回答

1

最後,您希望能夠根據內容分類一些文本。所以你想能夠說出它的歌曲或電影等
爲了做到貝葉斯(或其他方法),你首先使用你的火車數據來建立一個模型。

首先,通過在第5行創建priors(docs in class/total docs)第5行。 比你計算conditional probabilities(給予類MOVIES的詞魚的概率,給出SONGS類的詞雨概率)第7-10行。您只需將該術語的出現次數與課堂中術語的總數相加(加上一些平滑 - > +1)即可。這就是爲什麼你要進行協調 - 以便能夠統計班級中所有術語的出現次數。
最後,您將這些值插入貝葉斯公式中,並將一些unknonw文檔分類爲MOVIES,SONGS,... 更多wiki