垃圾邮件分类快速理解机器学习中的朴素贝叶斯(Naive Bayes)
貝葉斯方法是一個歷史悠久,有著堅實的理論基礎(chǔ)的方法,同時處理很多問題時直接而又高效,很多高級自然語言處理模型也可以從它演化而來。因此,學(xué)習(xí)貝葉斯方法,是研究自然語言處理問題的一個非常好的切入口。
其實樸素貝葉斯=貝葉斯公式+條件獨立假設(shè)
1.貝葉斯公式
大學(xué)概率學(xué)統(tǒng)計就已經(jīng)學(xué)過貝葉斯公式,沒學(xué)過也沒關(guān)系,該公式就一行:
P(Y|X)=P(X|Y)*P(Y)/P(X)
它是由聯(lián)合概率推導(dǎo)出來的:
P(Y,X)=P(Y|X)P(X)=P(X|Y)P(Y)
其中 P(Y) 叫做先驗概率, P(Y|X) 叫做后驗概率, P(Y,X) 叫做聯(lián)合概率
2.機(jī)器學(xué)習(xí)角度理解貝葉斯公式:
X:具有某些特征,Y:屬于某類的標(biāo)簽。于是貝葉斯公式就變成:
P(“屬于某類”|“具有某特征”)=P(“具有某特征”|“屬于某類”)*P(“屬于某類”)/P(“具有某特征”)
對于二分類問題最終判斷判斷 P(“屬于某類”|“具有某特征”)是否大于1/2。
3垃圾郵件識別
現(xiàn)在我們舉個例子,判斷**“我司可辦理正規(guī)發(fā)票(保真)17%增值稅發(fā)票點數(shù)優(yōu)惠!”這樣的一份郵件是不是垃圾郵件。那么這樣的一個例子具有某些特征:X=“我司可辦理正規(guī)發(fā)票(保真)17%增值稅發(fā)票點數(shù)優(yōu)惠!”,屬于某類標(biāo)簽:Y=垃圾郵件
根據(jù)剛提到的概率模型就是判斷概率P**(“垃圾郵件”|“我司可辦理正規(guī)發(fā)票(保真)17%增值稅發(fā)票點數(shù)優(yōu)惠!”)是否大于1/2。
4.分詞
為了完成垃圾郵件的識別,我們先了解下什么是分詞。分詞也是中文NLP中最重要的技術(shù)之一,就是將一句話拆分成若干個詞語的組合。比如句子**“我司可辦理正規(guī)發(fā)票(保真)17%增值稅發(fā)票點數(shù)優(yōu)惠!”就變成(“我”,“司”,“可”,“辦理”,“正規(guī)發(fā)票”,“保真”,“增值稅”,“發(fā)票”,“點數(shù)”,“優(yōu)惠”))。那么在python平臺上有一個非常常用 的分詞工具就是jieba**。
分詞完后,貝葉斯公式就變成:
5.條件獨立假設(shè)
雖然已經(jīng)把一句話轉(zhuǎn)換成不同詞語的組合,或者說一組向量,但我們現(xiàn)在還不知道分詞后的概率怎么求,現(xiàn)在就用簡單粗暴的方法:條件獨立假設(shè)求上面的概率,也就是很樸素的近似。我們用S表示垃圾郵件,用H表示正常郵件,那么垃圾郵件的近似公式(貝葉斯公式分子第一項)就表示如下:
終究是傳說中的條件獨立假設(shè)。基于正常郵件的條件獨立假設(shè)也一樣。
式中的每一項都特別好求,只需統(tǒng)計各類郵件中關(guān)鍵詞出現(xiàn)的概率就行了,比如:
在垃圾郵件分類的例子中,先驗概率(貝葉斯公式分子第二項)都先等:P(S)=P(H)=1/2。
而其中P((”我“,“司”,“可”,“辦理”,“正規(guī)發(fā)票”,“保真”,“增值稅”,“發(fā)票”,“點數(shù)”,“優(yōu)惠”)) 對于正常郵件和垃圾郵件值都是一樣的,所以可以不用計算。
將這些公式代入貝葉斯公式就可以求出概率是不是大于1/2來判斷該郵件,是不是垃圾郵件了。
6.樸素貝葉斯,樸素在何處
最后來討論下加上條件獨立假設(shè)的貝葉斯方法為什么叫樸素貝葉斯方法。
將句子(“我”,“司”,“可”,“辦理”,“正規(guī)發(fā)票”) 中的 (“我”,“司”)與(“正規(guī)發(fā)票”)調(diào)換一下順序,就變成了一個新的句子(“正規(guī)發(fā)票”,“可”,“辦理”, “我”, “司”)。新句子與舊句子的意思完全不同。但由于乘法交換律,樸素貝葉斯方法中算出來二者的條件概率完全一樣!也就是說,在樸素貝葉斯眼里,“我司可辦理正規(guī)發(fā)票”與“正規(guī)發(fā)票可辦理我司”完全相同。樸素貝葉斯失去了詞語之間的順序信息。這就相當(dāng)于把所有的詞匯扔進(jìn)到一個袋子里隨便攪和,貝葉斯都認(rèn)為它們一樣。因此這種情況也稱作詞**袋子模型(bag of words)。**詞袋子模型與人們的日常經(jīng)驗完全不同。比如,在條件獨立假設(shè)的情況下,“武松打死了老虎”與“老虎打死了武松”被它認(rèn)作一個意思了。恩,樸素貝葉斯就是這么單純和直接。
樸素貝葉斯的優(yōu)缺點
樸素貝葉斯的主要優(yōu)點有:
1)樸素貝葉斯模型有穩(wěn)定的分類效率。
2)對小規(guī)模的數(shù)據(jù)表現(xiàn)很好,能處理多分類任務(wù),適合增量式訓(xùn)練,尤其是數(shù)據(jù)量超出內(nèi)存時,可以一批批的去增量訓(xùn)練。
3)對缺失數(shù)據(jù)不太敏感,算法也比較簡單,常用于文本分類。
樸素貝葉斯的主要缺點有:
1) 理論上,樸素貝葉斯模型與其他分類方法相比具有最小的誤差率。但是實際上并非總是如此,這是因為樸素貝葉斯模型給定輸出類別的情況下,假設(shè)屬性之間相互獨立,這個假設(shè)在實際應(yīng)用中往往是不成立的,在屬性個數(shù)比較多或者屬性之間相關(guān)性較大時,分類效果不好。而在屬性相關(guān)性較小時,樸素貝葉斯性能最為良好。對于這一點,有半樸素貝葉斯之類的算法通過考慮部分關(guān)聯(lián)性適度改進(jìn)。
2)需要知道先驗概率,且先驗概率很多時候取決于假設(shè),假設(shè)的模型可以有很多種,因此在某些時候會由于假設(shè)的先驗?zāi)P偷脑驅(qū)е骂A(yù)測效果不佳。
3)由于我們是通過先驗和數(shù)據(jù)來決定后驗的概率從而決定分類,所以分類決策存在一定的錯誤率。
4)對輸入數(shù)據(jù)的表達(dá)形式很敏感。
引用及參考
[1] 《統(tǒng)計學(xué)習(xí)方法》李航著
[2] https://blog.csdn.net/zrh_CSDN/article/details/81007851
[3] https://www.bilibili.com/video/av27193854?p=2
總結(jié)
以上是生活随笔為你收集整理的垃圾邮件分类快速理解机器学习中的朴素贝叶斯(Naive Bayes)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从大学入门到研究生拿大厂offer,必须
- 下一篇: 通过实例理解word2vec之Skip-