【NLP】经典分类模型朴素贝叶斯解读
貝葉斯分類器在早期的自然語言處理任務中有著較多實際的應用,例如大部分的垃圾郵件處理都是用的貝葉斯分類器。貝葉斯分類器的理論對于理解后續的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
NLP群推薦
有三AI建立了一個NLP群,便于有志者相互交流。現人數較多,不便貼二維碼。感興趣的同學可以微信搜索jen104,備注"加入有三AI NLP群"。
知識星球推薦
有三AI知識星球,內設8大學習板塊,包括深度學習模型解讀“網絡結構1000問”,覆蓋傳統圖像算法/機器學習/深度學習等內容的有獎“看圖猜技術”,不常為人所知的“數據集”,優質“GitHub項目”推薦,優質AI電子書“AI書籍”,容易忽略的小問題“AI1000問”,濃縮領域精華的“AI知識匯總”,以及眾籌合作的開發“項目”。
轉載文章請后臺聯系
侵權必究
往期精選
【NLP】自然語言處理專欄上線,帶你一步一步走進“人工智能技術皇冠上的明珠”。
【NLP】用于語音識別、分詞的隱馬爾科夫模型HMM
【NLP】用于序列標注問題的條件隨機場(Conditional Random Field, CRF)
【NLP】 NLP專欄欄主自述,說不出口的話就交給AI說吧
總結
以上是生活随笔為你收集整理的【NLP】经典分类模型朴素贝叶斯解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【杂谈】菜鸟误入linux会有哪些惨痛的
- 下一篇: 【技术综述】深度学习在自然语言处理中的应