機器學習數學原理(4)——樸素貝葉斯演算法
機器學習數學原理(4)——樸素貝葉斯模型
樸素貝葉斯模型(Naive Bayes Model),是一種基於貝葉斯定理與特徵條件獨立假設的分類方法,與決策樹模型(Decision Tree Model)同為目前使用最廣泛的分類模型之一,在各個領域都有廣泛的應用,例如我們經常會用到的垃圾郵件的分類功能。
這篇博文接上一篇博文:機器學習數學原理(3)——生成型學習演算法。但又有其相對的獨立性與重要性,故筆者重新開一篇博文來介紹。老規矩,由於筆者能力有限,如果有任何不妥甚至錯誤的地方,歡迎批評指出。
1 樸素貝葉斯模型簡介
上百科搜了搜,摘抄下面一段,權當補充一下知識吧…
貝葉斯定理這個在250多年前發明的演算法,在資訊領域內有著無與倫比的地位。貝葉斯分類是一系列分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。樸素貝葉斯演算法(Naive Bayesian)
如果讀者讀了上一篇博文可以知道,上一篇博文詳細講述的GDA(高斯判別演算法)的特徵向量為連續的隨機變數。不同於GDA的這個特點,樸素貝葉斯模型的特徵向量主要是離散的,如果有連續的,可以通過劃分範圍來使其離散化。
2 樸素貝葉斯假設
樸素貝葉斯分類器基於一個簡單的假定:給定目標值時屬性之間相互條件獨立——樸素貝葉斯假設(Naive Bayes Assumption)。
換句話來說就是特徵向量中一個特徵的取值並不影響其他特徵的取值。用公式來表示便是:
其中右下角的腳標表示某一個樣本向量中的第i項特徵。
需要注意的是:這個條件中的“相互條件獨立”與“獨立隨機變數”是有著區別的,後者用公式表示為
現在我們來推導類別的特徵向量分佈,下面的式子不需要樸素貝葉斯假設也是成立的:
有了樸素貝葉斯假設後可以簡化為:
這個假設的意義在於使得分佈的計算大大簡化!
3 樸素貝葉斯分類器應用例項
這裡筆者就借鑑Andrew Ng講解的垃圾郵件分類器來例項化一下樸素貝葉斯分類器。
3.1 文字向量化
文字向量化是為了將郵件轉化為可供演算法分類的特徵向量。
文字向量化的基本思路:
- 建立詞庫(Vocabulary),例如將英語詞典作為詞庫,含有n個單詞。
- 特徵向量用x來表示,含有n項。每一項都是伯努利分佈,只能取1或者0。每一項對映詞庫中的一個單詞。
- 搜尋郵件,出現一個單詞,就在特徵向量x的對應項標1,如果未出現過則標0。
3.2 建立樸素貝葉斯分類器
現在需要建立其概率分佈模型,現在知道每一項都是條件伯努利分佈,那麼我們需要確定的引數有:
現在我們給出m個訓練樣本作為訓練樣本空間,那麼其對數極大似然函式為:
其中
對該式子使用樸素貝葉斯假設化簡後為:
帶入極大似然函式後,通過極大似然估計法可以確定需要確定的引數的值為:
這樣p(x|y)的模型就已經確定了。
3.3 預測
模型已經確定,現在就可以使用貝葉斯公式對P(y|x)進行確定了。
詳細的就看上一篇博文,這裡就不再贅述了。
4 後記
這裡需要注意的是上述舉的例子只是為了讓讀者更好的理解樸素貝葉斯分類模型的應用,如果要實際應用還有很多要注意的,讀者還可能需要的知識有下列(由於重點的關係就不再講了):
- 拉普拉斯平滑(針對從未出現的單詞)
- 多項式事件模型(Multinomial Event Model)