通俗易懂!白话朴素贝叶斯
個人網站:紅色石頭的機器學習之路
CSDN博客:紅色石頭的專欄
知乎:紅色石頭
微博:RedstoneWill的微博
GitHub:RedstoneWill的GitHub
微信公眾號:AI有道(ID:redstonewill)
說起樸素貝葉斯,很多人會被它復雜的公式和易混淆的概念搞得暈頭轉向、不知所以。本文,我將以最通俗的語言,盡量減少復雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直觀且形象的理解。
1. 買瓜問題
首先,我們要介紹兩個數學概念:先驗概率、后驗概率。是不是又要暈乎乎了?沒關系,我們通過一個例子來幫助你理解這兩種概率。
最近天氣炎熱,紅色石頭來到超市準備買個西瓜,可是沒有太多的經驗,不知道怎么樣才能挑個熟瓜。這時候,作為理科生,紅色石頭就有這樣的考慮:
如果我對這個西瓜沒有任何了解,包括瓜的顏色、形狀、瓜蒂是否脫落。按常理來說,西瓜成熟的概率大概是 60%。那么,這個概率 P(瓜熟) 就被稱為先驗概率。
也就是說,先驗概率是根據以往經驗和分析得到的概率,先驗概率無需樣本數據,不受任何條件的影響。就像紅色石頭只根據常識而不根據西瓜狀態來判斷西瓜是否成熟,這就是先驗概率。
再來看,紅色石頭以前學到了一個判斷西瓜是否成熟的常識,就是看瓜蒂是否脫落。一般來說,瓜蒂脫落的情況下,西瓜成熟的概率大一些,大概是 75%。如果把瓜蒂脫落當作一種結果,然后去推測西瓜成熟的概率,這個概率 P(瓜熟 | 瓜蒂脫落) 就被稱為后驗概率。后驗概率類似于條件概率。
知道了先驗概率和后驗概率,我們再來看看什么是聯合概率。紅色石頭買西瓜的例子中,P(瓜熟,瓜蒂脫落) 稱之為聯合分布,它表示瓜熟了且瓜蒂脫落的概率。關于聯合概率,滿足下列乘法等式:
P(瓜熟,瓜蒂脫落)=P(瓜熟|瓜蒂脫落)?P(瓜蒂脫落)=P(瓜蒂脫落|瓜熟)?P(瓜熟)P(瓜熟,瓜蒂脫落)=P(瓜熟|瓜蒂脫落)?P(瓜蒂脫落)=P(瓜蒂脫落|瓜熟)?P(瓜熟)
其中,P(瓜熟 | 瓜蒂脫落) 就是剛剛介紹的后驗概率,表示在“瓜蒂脫落”的條件下,“瓜熟”的概率。P(瓜蒂脫落 | 瓜熟) 表示在“瓜熟”的情況下,“瓜蒂脫落”的概率。
接著,紅色石頭想如何計算瓜蒂脫落的概率呢?實際上可以分成兩種情況:一種是瓜熟狀態下瓜蒂脫落的概率,另一種是瓜生狀態下瓜蒂脫落的概率。瓜蒂脫落的概率就是這兩種情況之和。因此,我們就推導出了全概率公式:
P(瓜蒂脫落)=P(瓜蒂脫落|瓜熟)?P(瓜熟)+P(瓜蒂脫落|瓜生)?P(瓜生)P(瓜蒂脫落)=P(瓜蒂脫落|瓜熟)?P(瓜熟)+P(瓜蒂脫落|瓜生)?P(瓜生)
2. 單個特征判斷瓜熟
好了,介紹完先驗概率、后驗概率、聯合概率、全概率后,我們來看這樣一個問題:西瓜的狀態分成兩種:瓜熟與瓜生,概率分別為 0.6 與 0.4,且瓜熟里面瓜蒂脫落的概率是 0.8,瓜生里面瓜蒂脫落的概率是 0.4。那么,如果我現在挑到了一個瓜蒂脫落的瓜,則該瓜是好瓜的概率多大?
顯然,這是一個計算后驗概率的問題,根據我們上面推導的聯合概率和全概率公式,可以求出:
P(瓜熟|瓜蒂脫落)=P(瓜熟,瓜蒂脫落)P(瓜蒂脫落)???????=P(瓜蒂脫落|瓜熟)?P(瓜熟)P(瓜蒂脫落|瓜熟)?P(瓜熟)+P(瓜蒂脫落|瓜生)?P(瓜生)P(瓜熟|瓜蒂脫落)=P(瓜熟,瓜蒂脫落)P(瓜蒂脫落)=P(瓜蒂脫落|瓜熟)?P(瓜熟)P(瓜蒂脫落|瓜熟)?P(瓜熟)+P(瓜蒂脫落|瓜生)?P(瓜生)
一項一項來看:
條件概率 P(瓜蒂脫落 | 瓜熟) = 0.8
先驗概率 P(瓜熟) = 0.6
條件概率 P(瓜蒂脫落 | 瓜生) = 0.4
先驗概率 P(瓜生) = 0.4
將以上數值帶入上式,得:
P(瓜熟|瓜蒂脫落)=0.8?0.60.8?0.6+0.4?0.4=0.75P(瓜熟|瓜蒂脫落)=0.8?0.60.8?0.6+0.4?0.4=0.75
這樣,我們就計算得到了瓜蒂脫落的瓜是好瓜的概率是 0.75。注意,以上這種計算后驗概率的公式就是利用貝葉斯定理。有點意外吧?不知不覺,可以說你已經掌握了貝葉斯定理的思想了。
3. 多個特征判斷瓜熟
為了買到一個熟瓜,紅色石頭也是拼了。專門在網上搜索了一下。知道判斷一個瓜是否熟了,除了要看瓜蒂是否脫落,還要看瓜的形狀和顏色。形狀有圓和尖之分,顏色有深綠、淺綠、青色之分。要看這么多特征啊?紅色石頭有點慌,不過沒關系,我們可以使用剛剛引入的貝葉斯定理思想來嘗試解決這個問題。
現在,特征由原來的 1 個,變成現在的 3 個,我們用 X 表示特征,用 Y 表示瓜的類型(瓜熟還是瓜生)。則根據貝葉斯定理,后驗概率 P(Y=ck | X=x) 的表達式為:
P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)∑kP(X=x|Y=ck)P(Y=ck)P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)∑kP(X=x|Y=ck)P(Y=ck)
其中,ckck 表示類別,k 為類別個數。本例中,k = 1,2,c1c1 表示瓜熟,c2c2 表示瓜生。上面的公式看似有點復雜,但其實與上一節單特征(瓜蒂是否脫落)的形式是一致的。
有一點需要注意,這里的特征 X 不再是單一的,而是包含了 3 個特征。因此,條件概率 P(X=x | Y=ckck) 假設各個條件相互獨立,也就是說假設不同特征之間是相互獨立的。這樣,P(X=x | Y=ckck) 就可以寫成:
P(X=x|Y=ck)=P(X1,?,Xn|Y=ck)=Πnj=1P(Xj=xj|Y=ck)P(X=x|Y=ck)=P(X1,?,Xn|Y=ck)=Πj=1nP(Xj=xj|Y=ck)
其中,n 為特征個數,j 表示當前所屬特征。針對這個例子,P(X=x | Y=ckck) 可以寫成:
P(X=x|Y=ck)=P(X1=x1|Y=ck)P(X2=x2|Y=ck)P(X3=x3|Y=ck)P(X=x|Y=ck)=P(X1=x1|Y=ck)P(X2=x2|Y=ck)P(X3=x3|Y=ck)
這種條件獨立性的假設就是樸素貝葉斯法“樸素”二字的由來。這一假設讓樸素貝葉斯法變得簡單,但是有時候會犧牲一定的分類準確率。
這樣,利用樸素貝葉斯思想,我們就可以把后驗概率寫成:
P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)∑kP(X=x|Y=ck)P(Y=ck)=P(Y=ck)ΠjP(Xj=xj|Y=ck)∑kP(Y=ck)ΠjP(Xj=xj|Y=ck)P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)∑kP(X=x|Y=ck)P(Y=ck)=P(Y=ck)ΠjP(Xj=xj|Y=ck)∑kP(Y=ck)ΠjP(Xj=xj|Y=ck)
不是說好沒有那么多公式的嗎?別擔心,上面的公式看上去比較復雜,其實只是樣本特征增加了,形式上與上一節 P(瓜熟 | 瓜蒂脫落) 是一致的。
現在,紅色石頭拿起一個西瓜,觀察了它的瓜蒂、形狀、顏色三個特征,就能根據上面的樸素貝葉斯公式,分別計算 c1c1(瓜熟)和 c2c2(瓜生)的概率,即 P(Y=c1c1 | X=x) 和 P(Y=c2c2 | X=x)。然后再比較 P(Y=c1c1 | X=x) 和 P(Y=c2c2 | X=x) 值的大小:
若 P(Y=c1c1 | X=x) > P(Y=c2c2 | X=x),則判斷瓜熟;
若 P(Y=c1c1 | X=x) < P(Y=c2c2 | X=x),則判斷瓜生。
值得注意的是上式中的分母部分,對于所有的 ckck 來說,都是一樣的。因此,分母可以省略,不同的 ckck,僅比較 P(Y=ckck | X=x) 的分子即可:
P(Y=ck)ΠjP(Xj=xj|Y=ck)P(Y=ck)ΠjP(Xj=xj|Y=ck)
好啦!紅色石頭終于明白了如何利用樸素貝葉斯法,來判斷瓜是否熟了。
4. 樸素貝葉斯分類
紅色石頭已經了解了貝葉斯定理和樸素貝葉斯法,接下來已經可以很自信地去買瓜了。買瓜之前,還有一件事情要做,就是搜集樣本數據。紅色石頭通過網上資料和查閱,獲得了一組包含 10 組樣本的數據。這組數據是不同瓜蒂、形狀、顏色對應的西瓜是生是熟。我把這組數據當成是歷史經驗數據,以它為標準。
其中,瓜蒂分為脫落和未脫,形狀分為圓形和尖形,顏色分為深綠、淺綠、青色。不同特征組合對應著瓜熟或者瓜生。
現在,紅色石頭挑了一個西瓜,它的瓜蒂脫落、形狀圓形、顏色青色。這時候,紅色石頭就完全可以根據樣本數據和樸素貝葉斯法來計算后驗概率。
首先,對于瓜熟的情況:
瓜熟的先驗概率: P(瓜熟) = 6 / 10 = 0.6。
條件概率: P(脫落 | 瓜熟) = 4 / 6 = 2 / 3。
條件概率: P(圓形 | 瓜熟) = 4 / 6 = 2 / 3。
條件概率: P(青色 | 瓜熟) = 2 / 6 = 1 / 3。
計算后驗概率分子部分:
P(瓜熟) × P(脫落 | 瓜熟) × P(圓形 | 瓜熟) × P(青色 | 瓜熟) = 0.6 × (2 / 3) × (2 / 3) × (1 / 3) = 4 / 45。
然后,對于瓜生的情況:
瓜生的先驗概率: P(瓜生) = 4 / 10 = 0.4。
條件概率: P(脫落 | 瓜生) = 1 / 4 = 0.25。
條件概率: P(圓形 | 瓜生) = 1 / 4 = 0.25。
條件概率: P(青色 | 瓜生) = 1 / 4 = 0.25。
計算后驗概率分子部分:
P(瓜生) × P(脫落 | 瓜生) × P(圓形 | 瓜生) × P(青色 | 瓜生) = 0.4 × 0.25 × 0.25 × 0.25 = 1 / 160。
因為 4 / 45 > 1 / 160,所以預測為瓜熟。終于計算完了,紅色石頭很肯定地說這個西瓜瓜蒂脫落、形狀圓形、顏色青色,應該是熟瓜。
回到家一看,果然瓜熟了。
5. 總結
本文以紅色石頭買西瓜的經歷,來給大家形象解釋了什么是先驗概率、后驗概率,介紹了貝葉斯定理和樸素貝葉斯法。最后,將樸素貝葉斯法用于如何挑選西瓜,判斷西瓜是否熟了。本文以最白話的語言解釋了樸素貝葉斯的基本思想和分類過程。不知道紅色石頭的這次買瓜經歷是否對你了解樸素貝葉斯有所幫助呢?
總結
以上是生活随笔為你收集整理的通俗易懂!白话朴素贝叶斯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows函数错误处理
- 下一篇: 游走于天才与疯子边缘的创业“鬼才”