樸素貝葉斯算法與上篇中寫到到生成學習算法的思想是一致的。它不需要像線性迴歸等算法一樣去擬合各種假設的可能,只需要計算各種假設的概率,然後選擇概率最高的那種假設分類類別。其中還添入了一個貝葉斯假定:在給定目標值y時屬性值x之間相互獨立。這樣的分類算法被稱爲樸素貝葉斯分類器(Naive Bayes classifier) 。
1、樸素貝葉斯算法
在樸素貝葉斯算法的模型裏,給定的訓練集爲, 可計算,。因爲貝葉斯假定,可以計算出聯合似然概率函數:
最大化聯合似然概率函數可得到:
然後我們就可以對新的數據進行預測。預測公式爲:
如果x只取兩種值,則p(x|y)服從伯努力分佈。如果 x取多種值,則p(x|y)服從多項分佈。當x的取值是連續的時候,可以將y值區間離散化,再分別對各個區間分類命名爲特定值。
2、拉普拉斯平滑
在給定的訓練集中,假設x的取值有k種{1,…,k},所以φi = p(z = i)。在未使用拉普拉斯平滑的情況下,
3、Naive Bayes和Multinomial event model的比較
在垃圾郵件的分類中,先設定一個垃圾詞語字典索引,然後通過對郵件中是否含有垃圾詞語字典索引中的詞判斷一封郵件是垃圾郵件的概率。在Naive Bayes中只需計算每個訓練郵件文本中是否含有垃圾詞語字典索引中的某一個詞來計算垃圾郵件的概率,而在Multinomial event model中需要考慮垃圾字典索引中的某一個詞在每個訓練郵件文本中出現的次數來計算垃圾郵件的概率。
例如,一封郵件是“a nip...”,垃圾詞語字典索引爲{a,....,nip,....}(a爲字典中第1個詞語,nip爲第35000個詞語)。所以對於Naive Bayes來說,可表示爲如下矩陣(矩陣第1元素爲1,第35000個元素也爲1)
而在Multinomial event model中,表示爲,。這表示郵件的第1個詞語是a,第35000個詞語是nip。這樣的話,如果郵件中第3個詞語是a的話,Naive的表示不變,但是Multinomial event model中的表示會有x3=1。通過這樣就可以計算在郵件中每個垃圾字典索引中的詞語出現的次數。這樣評估的概率比樸素貝葉斯算法的概率更爲理想。具體比較如下: