一文搞懂樸素貝葉斯分類

一文搞懂樸素貝葉斯分類

閱讀此文假設你已經(jīng)具備高中數(shù)學知識

什么是樸素貝葉斯

要搞懂樸素貝葉斯分類,首先需要了解什么是貝葉斯定理和特征條件獨立假設,樸素貝葉斯算法就是基于這兩個來實現(xiàn)的分類方法。

貝葉斯定理

貝葉斯定理通俗點講就是求在事件 B 已經(jīng)發(fā)生的前提下,事件 A 發(fā)生的概率,記為 P(A|B),被就成為 A 的后驗概率,也稱為條件概率。
其基本公式為:

P(A|B) = \frac{P (A)*P(B|A)} {P(B)}

P(A)就叫做先驗概率邊緣概率。
P(B|A) 就是在 事件A 發(fā)生情況下的 B 事件的概率分布,也是條件概率。

公式記不住怎么辦,A 和 B 太容易混淆了。有辦法,我們來推導一遍,首先 A 和 B 同時發(fā)生的概率被成為聯(lián)合概率,表示為 P(AB)、P(A,B)、P(A ∩ B)。學過概率我們應該都知道,條件概率公式為:

P(A|B) = \frac{P(AB)}{P(B)}

若由兩個事件推廣到無窮多個事件,條件概率公式可擴展為:

P(A_{_1}A_{_2}...A_{_n}) = P(A_{_1})P(A_{_2}|A_{_1})...P(A_{_n}|A_{_1}A_{_2}...A_{n-1})

取 n=2, 令A_2 = B, 則P(AB) = P(A)P(B|A), 代入上述公式即可得到貝葉斯定理公式。

還有一個是全概率:設事件{Aj}是樣本空間Ω的一個劃分,且P(Ai)>0,那么對于任意事件 B,全概率公式為:

P(B) = \sum\limits_{i=1}^nP(A_i)P(B|A_i)

我們將 上面公式也帶入到貝葉斯定理中去,最終 貝葉斯公式得到:

P(A|B) = \frac{P (A)*P(B|A)}{\sum\limits_{i=1}^nP(A_i)*P(B|A_i)}(公式①)

此處休息 2 分鐘

特征條件獨立

搞懂了貝葉斯定理,我們再來看特征條件獨立,這個就很好理解了。先從數(shù)學角度描述一下,然后再通過例子詳細說明。假設有一訓練集(X,Y),輸入 X 記為x=(x1, x2, ..., xn), 表示每個樣本 x 都有 n 維特征,輸出 Y 為類標記集合,記作 y={y1, y2, ..., yk}, 表示類標記集合有 k 種類別。如果新來一個樣本 m,判斷它屬于 Y 的哪個類別, 轉(zhuǎn)化為概率問題其實就是求解 m屬于 Y 哪個類別的概率最大。在這過程中,我們假設 x 的各個特征都相互獨立,這個就是特征條件獨立假設,根據(jù)條件獨立公式 P((A,B)|C) = P(A|C)* P(B|C)可得對應公式為:

P((X_1, X_2, ..., X_n) | Y_k) = P (X_1|Y_k) \ *...\ *P(X_n|Y_k) = \prod_{i=1}^nP(X_i|Y_k) (公式②)

再冷靜一下

現(xiàn)在我們有公式一和公式二,將公式②代入公式①中,可得:
P(Y_k|X) = \frac{P(Y_k)*\prod_{i=1}^nP(X_i|Y_k)}{\sum\limits_{i=1}^kP(Y_k)*\prod_{i=1}^nP(X_i|Y_k)}
因此,樸素貝葉斯分類器表達式可以轉(zhuǎn)化為為:
y = argmax\frac{P(Y_k)*\prod_{i=1}^nP(X_i|Y_k)}{\sum\limits_{i=1}^nP(Y_k)*\prod_{i=1}^nP(X|Y_k)} 公式③
又因為對于所有的樣本中,公式③的分母都是一樣的,樸素貝葉斯分類器表達式最終為:
y = argmax{P(Y_k)*\prod_{i=1}^nP(X_i|Y_k)}
至此可以看出,分類問題其實就是數(shù)學中求最大概率的問題。

通過例子了解樸素貝葉斯分類

比如 下一篇我們即將實現(xiàn)的垃圾短信分類器。首先大概確定一份郵件中出現(xiàn)哪些特征會被判定為垃圾郵件。假設有100封郵件樣本,我們已經(jīng)標注垃圾郵件有25封,垃圾郵件中含有“便宜”、“發(fā)票”、“亂碼”等字樣。根據(jù)樸素貝葉斯分類器原理,一個樣本判斷屬于哪個類別是求最大概率問題。通過分析得到:

  • P(垃圾郵件) = 0.25 (先驗概率)
  • P(便宜|垃圾郵件) = 10/25 = 0.4 (條件概率)
  • P(發(fā)票|垃圾郵件) = 15/25 = 0.6
  • P(亂碼|垃圾郵件) = 20/25 = 0.8

通過樸素貝葉斯公式可得
P(垃圾郵件|(便宜,發(fā)票,亂碼)) = 0.048 (后驗概率)

  • P(正常郵件) = 0.75
  • P(便宜|正常郵件) = 5/75
  • P(發(fā)票|正常郵件) = 3/75
  • P(亂碼|正常郵件) = 1/75
    通過樸素貝葉斯公式可得

P(正常郵件|(便宜,發(fā)票,亂碼)) = \frac{1}{37500}

通過比較,發(fā)現(xiàn) P(垃圾郵件|(便宜,發(fā)票,亂碼))>P(正常郵件|(便宜,發(fā)票,亂碼))。因此如果再來一份新郵件,如果出現(xiàn)便宜,亂碼,發(fā)票字樣,那么我們預測為垃圾郵件。
PS:由于在實際問題中,可能會出現(xiàn)某些特征條件概率為 0 的情況,并不是說不存在這種情況,而是數(shù)據(jù)樣本未采集到對應的數(shù)據(jù)。針對這種情況,一般采用拉普拉斯平滑來修正,具體的用法暫時先不說明了,簡單來說假設樣本為 1 來避免。

最后

樸素貝葉斯假設就是對條件概率分布做了條件獨立的假設,由于這是一個較強的假設,因此樸素兩字也是這樣來的,也正因為這個假設條件,使得樸素貝葉斯高效,而且易于實現(xiàn),對應的缺點也因為假設太強,分類的性能不一定很高。
樸素貝葉斯分類其實在日常生活中我們經(jīng)常會用到,比如說路上走來一個人,我們一眼就能看出它是男人還是女人,或是黃種人還是白種人。在企業(yè)中,判斷信用卡詐騙,病人分類,新聞分類等都使用的是樸素貝葉斯分類。

在下一篇中,我們將運用樸素貝葉斯分類器算法來實現(xiàn)一個垃圾短信分類檢測器,敬請期待。

原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請聲明作者和出處,謝謝!

歡迎關注機器學習 Club ,在這里我將持續(xù)輸出機器學習原創(chuàng)文章,盡量用樸實的語言帶你領略技術(shù)的美妙。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容