「NLP」經典分類模型樸素貝葉斯解讀

2019-07-16     有三AI

貝葉斯分類器在早期的自然語言處理任務中有著較多實際的應用,例如大部分的垃圾郵件處理都是用的貝葉斯分類器。貝葉斯分類器的理論對於理解後續的NLP模型有很大的進益,感興趣的小夥伴一定要好好看看,本文會詳細的講述貝葉斯分類器的原理。

本文會是我們NLP基礎系列最後一篇機器學習模型的講解,後面會進入深度學習相關的內容。

作者 | 小Dream哥

編輯 | 言有三

1 貝葉斯決策論

貝葉斯決策論是在統計機率框架下進行分類決策的基本方法。對於分類任務來說,在所有相關機率都已知的情況下,貝葉斯決策論考慮如何基於這些機率和誤判損失來預測分類。

假設在一個分類任務中,有N種可能的分類,y={c1,c2,c3,...,cN}。我們會這樣定義將一個樣本預測為ci的期望損失,又叫「條件風險」:

1、其中lambda_i_j,是將一個第j類樣本預測為i類的損失

2、P(c_j|x)表示為將樣本x預測為j類的機率

那麼學習的任務是什麼呢?

學習任務是尋找一個判定準則,利用該判定準則(分類器)進行分類預測,能夠最小化條件風險:

如果我們針對每個樣本x都最小化其條件風險,那麼整體的風險也會最小

這就是所謂的貝葉斯判定準則:為最小化總體風險,只需在每個樣本上選擇那個能使條件風險最小的類別標記,即

h*稱為貝葉斯最優分類器。

講了這些理論,估計大家更是雲里霧裡,那我們不妨來看看實際的樸素貝葉斯分類器是怎麼構建的。

我們先假設lambda_i_j有這樣的形式:

那麼

這樣的話,最小化分類錯誤率的貝葉斯最優分類器為:

怎麼理解呢?小Dream哥的理解是,根據貝葉斯判定準則,我們要預測一個樣本屬於哪一個類別,計算所有的後驗機率P(c|x),機率最大的那一個類別的後驗機率就是預測到的類別了。

那麼該如何去計算後驗機率P(c|x)呢?

貝葉斯模型是一種生成模型,先計算聯合機率P(c,x),再通過聯合機率計算後驗機率,也就是利用如下的貝葉斯公式:

OK,那聯合機率和先驗機率該怎麼計算呢?樸素貝葉斯模型就該登場了。

2 樸素貝葉斯分類器

我們再來仔細的分析貝葉斯公式,在有一個訓練集的情況下:

1、P(c)為樣本為某個類別的機率,給定樣本及其label後容易計算

2、P(x)為某個樣本(所有屬性相同)出現的機率,給定樣本後,容

易得到

比較難計算的是P(x|c):

其中m為樣本屬性的個數,例如預測西瓜是不是甜的模型,如果基於西瓜的花紋是否清晰、敲起來響聲是否清亮這兩個屬性來判斷的話,屬性個數為2,也就是m=2。

在樸素貝葉斯模型中,有一個樣本屬性條件獨立性假設,即:

這樣貝葉斯公式就變成了:

那麼,樸素貝葉斯模型得公式就調整為:

對於所有類別來說,P(x)相同,所以上式可以簡化為:

好了,這就是樸素貝葉斯模型基礎理論的所有內容了。

到這裡,反應快的同學就會說:「你說了這麼多原理和公式,那麼這個模型到底是怎麼訓練和預測的呢?」下面我們就來討論這個問題。

3 樸素貝葉斯模型的訓練和預測

我們好好看看樸素貝葉斯模型最後的表達式,帶計算的參數有P(c),P(x_i|c)。訓練的過程,其實就是計算所有的P(c),P(x_i|c)的過程。

假設數據集為D,Dc表示數據集中C類樣本組成得集合。|D|表示數據集中樣本的個數,|Dc|表示C類樣本的個數。

那麼P(c)可以如下表示:

P(x_i|c)可以用下式表示:

|Dc,x_i|表示樣本屬於c類,第i個屬性為x_i的樣本的數目。在已知數據集的情況下,上面兩個式字都很容易計算,得到所有P(c)和P(x_i|c)後,就完成了學習的過程。

那麼,當來了一個新樣本,該如何對該樣本的類別進行預測呢?

假設新樣本X(x_1,x_2,_x_3,....x_m),總共有n個類別。根據最終的貝葉斯公式

預測步驟如下:

(1)根據訓練獲得的機率值矩陣,第1個類別的P(c_1)和P(x_1|c_1),P(x_2|c_1),...P(x_m|c_1),並計算他們的乘積,得到屬於第一個類別的機率

(2)同上,計算樣本屬於其他類別的機率

(3)取機率最大的類別為預測樣本的類別

這裡總結一下:

樸素貝葉斯模型在訓練過程,利用數據集D,計算P(c),P(x_i|c)。在預測時,輸入樣本,利用貝葉斯公式,計算n個類別的機率,最後輸出機率最大的那個類別,作為預測的類別。

總結

整個看下來,樸素貝葉斯模型的本質是針對樣本屬性的統計機率模型。要想樸素貝葉斯模型的效果好,前期的特徵工程和數據清洗是非常重要的工作。早期的機器學習分類模型,特徵選擇是至關重要的工作,直接決定了模型的效果,這點與現在的深度學模型有很大的差別。神經網絡中,通常是在模型內進行特徵提取與學習,這就大大減少了特徵工程方面的工作。

這是NLP基礎理論系列文章中最後一篇機器學習方面的文章了,後面開始介紹深度學習相關的內容了。其他經典的模型,例如SVM,決策樹,EM等,如有需要,大家可以留言,小Dream哥視情況,要不要再補上。

下期預告:遞歸神經網絡RNN

文章來源: https://twgreatdaily.com/zh-hk/a-apDmwBmyVoG_1Zv__q.html