2016-11-06 156 views
1

我必須實現樸素貝葉斯分類器將文檔分類到一個類。因此,在獲得屬於類的術語的條件概率以及拉普拉斯平滑時,我們有:拉普拉斯平滑伯努利模型樸素貝葉斯分類器

prob(t | c)= Num(Word出現在類c的文檔中)+ 1/Num(類c)中的文檔+ | V |

它是一個bernoulli模型,它可能有1或0,詞彙量非常大,可能有20000個單詞等等。所以,拉普拉斯平滑不會由於詞彙量龐大而給出非常小的值,或者我做錯了什麼。

根據此鏈接的僞代碼:http://nlp.stanford.edu/IR-book/html/htmledition/the-bernoulli-model-1.html,對於bernoulli模型,我們只添加2而不是| V |。爲什麼這樣?

+1

計算機科學交流? – MordechayS

回答

1

考慮多項式樸素貝葉斯的情況。你在上面定義的平滑是這樣的,你永遠不會得到零概率。

對於多變量/伯努利情況,還有一個額外的約束條件:不允許恰好爲1的概率。這是因爲當來自已知詞彙的某些t不存在於文檔d中時,概率1 - prob(t | c)乘以文檔概率。如果prob(t | c)爲1,則再一次,這是將要產生的0

後驗概率(同樣地,使用日誌時代替,log(1 - prob(t | c))未定義時的概率爲1)

所以伯努利方程(Nct + 1)/(Nc + 2)在,這兩種情況都受到保護。如果Nct == Nc,那麼概率爲1/2,而不是1。這也有生產的1/2的可能性的後果,無論t是否存在(P(t | c) == 1/2)否(1 - P(t | c) == 1/2