天天看點

通俗易懂!白話樸素貝葉斯說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

1 買瓜問題

首先,我們要介紹兩個數學概念:先驗機率、後驗機率。是不是又要暈乎乎了?沒關系,我們通過一個例子來幫助你了解這兩種機率。

最近天氣炎熱,紅色石頭來到超市準備買個西瓜,可是沒有太多的經驗,不知道怎麼樣才能挑個熟瓜。這時候,作為理科生,紅色石頭就有這樣的考慮:

如果我對這個西瓜沒有任何了解,包括瓜的顔色、形狀、瓜蒂是否脫落。按常理來說,西瓜成熟的機率大概是 60%。那麼,這個機率 P(瓜熟) 就被稱為先驗機率。

也就是說,先驗機率是根據以往經驗和分析得到的機率,先驗機率無需樣本資料,不受任何條件的影響。就像紅色石頭隻根據常識而不根據西瓜狀态來判斷西瓜是否成熟,這就是先驗機率。

再來看,紅色石頭以前學到了一個判斷西瓜是否成熟的常識,就是看瓜蒂是否脫落。一般來說,瓜蒂脫落的情況下,西瓜成熟的機率大一些,大概是 75%。如果把瓜蒂脫落當作一種結果,然後去推測西瓜成熟的機率,這個機率 P(瓜熟 | 瓜蒂脫落) 就被稱為後驗機率。後驗機率類似于條件機率。

知道了先驗機率和後驗機率,我們再來看看什麼是聯合機率。紅色石頭買西瓜的例子中,P(瓜熟,瓜蒂脫落) 稱之為聯合分布,它表示瓜熟了且瓜蒂脫落的機率。關于聯合機率,滿足下列乘法等式:

通俗易懂!白話樸素貝葉斯說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

其中,P(瓜熟 | 瓜蒂脫落) 就是剛剛介紹的後驗機率,表示在“瓜蒂脫落”的條件下,“瓜熟”的機率。P(瓜蒂脫落 | 瓜熟) 表示在“瓜熟”的情況下,“瓜蒂脫落”的機率。

接着,紅色石頭想如何計算瓜蒂脫落的機率呢?實際上可以分成兩種情況:一種是瓜熟狀态下瓜蒂脫落的機率,另一種是瓜生狀态下瓜蒂脫落的機率。瓜蒂脫落的機率就是這兩種情況之和。是以,我們就推導出了全機率公式:

通俗易懂!白話樸素貝葉斯說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

2 單個特征判斷瓜熟

好了,介紹完先驗機率、後驗機率、聯合機率、全機率後,我們來看這樣一個問題:西瓜的狀态分成兩種:瓜熟與瓜生,機率分别為 0.6 與 0.4,且瓜熟裡面瓜蒂脫落的機率是 0.8,瓜生裡面瓜蒂脫落的機率是 0.4。那麼,如果我現在挑到了一個瓜蒂脫落的瓜,則該瓜是好瓜的機率多大?

顯然,這是一個計算後驗機率的問題,根據我們上面推導的聯合機率和全機率公式,可以求出:

通俗易懂!白話樸素貝葉斯說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

一項一項來看:

條件機率 P(瓜蒂脫落 | 瓜熟) = 0.8

先驗機率 P(瓜熟) = 0.6

條件機率 P(瓜蒂脫落 | 瓜生) = 0.4

先驗機率 P(瓜生) = 0.4

将以上數值帶入上式,得:

通俗易懂!白話樸素貝葉斯說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

這樣,我們就計算得到了瓜蒂脫落的瓜是好瓜的機率是 0.75。注意,以上這種計算後驗機率的公式就是利用貝葉斯定理。有點意外吧?不知不覺,可以說你已經掌握了貝葉斯定理的思想了。

3 多個特征判斷瓜熟

為了買到一個熟瓜,紅色石頭也是拼了。專門在網上搜尋了一下。知道判斷一個瓜是否熟了,除了要看瓜蒂是否脫落,還要看瓜的形狀和顔色。形狀有圓和尖之分,顔色有深綠、淺綠、青色之分。要看這麼多特征啊?紅色石頭有點慌,不過沒關系,我們可以使用剛剛引入的貝葉斯定理思想來嘗試解決這個問題。

現在,特征由原來的 1 個,變成現在的 3 個,我們用 X 表示特征,用 Y 表示瓜的類型(瓜熟還是瓜生)。則根據貝葉斯定理,後驗機率 P(Y=ck | X=x) 的表達式為:

通俗易懂!白話樸素貝葉斯說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

其中,ck 表示類别,k 為類别個數。本例中,k = 1,2,c1 表示瓜熟,c2 表示瓜生。上面的公式看似有點複雜,但其實與上一節單特征(瓜蒂是否脫落)的形式是一緻的。

有一點需要注意,這裡的特征 X 不再是單一的,而是包含了 3 個特征。是以,條件機率 P(X=x | Y=ck) 假設各個條件互相獨立,也就是說假設不同特征之間是互相獨立的。這樣,P(X=x | Y=ck) 就可以寫成:

通俗易懂!白話樸素貝葉斯說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

其中,n 為特征個數,j 表示目前所屬特征。針對這個例子,P(X=x | Y=ck) 可以寫成:

通俗易懂!白話樸素貝葉斯說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

這種條件獨立性的假設就是樸素貝葉斯法“樸素”二字的由來。這一假設讓樸素貝葉斯法變得簡單,但是有時候會犧牲一定的分類準确率。

這樣,利用樸素貝葉斯思想,我們就可以把後驗機率寫成:

通俗易懂!白話樸素貝葉斯說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

不是說好沒有那麼多公式的嗎?别擔心,上面的公式看上去比較複雜,其實隻是樣本特征增加了,形式上與上一節 P(瓜熟 | 瓜蒂脫落) 是一緻的。

現在,紅色石頭拿起一個西瓜,觀察了它的瓜蒂、形狀、顔色三個特征,就能根據上面的樸素貝葉斯公式,分别計算 c1(瓜熟)和 c2(瓜生)的機率,即 P(Y=c1 | X=x) 和 P(Y=c2 | X=x)。然後再比較 P(Y=c1 | X=x) 和 P(Y=c2 | X=x) 值的大小:

若 P(Y=c1 | X=x) > P(Y=c2 | X=x),則判斷瓜熟;

若 P(Y=c1 | X=x) < P(Y=c2 | X=x),則判斷瓜生。

值得注意的是上式中的分母部分,對于所有的 ck 來說,都是一樣的。是以,分母可以省略,不同的 ck,僅比較 P(Y=ck | X=x) 的分子即可:

通俗易懂!白話樸素貝葉斯說起樸素貝葉斯,很多人會被它複雜的公式和易混淆的概念搞得暈頭轉向、不知是以。本文,我将以最通俗的語言,盡量減少複雜公式的使用,白話講解樸素貝葉斯算法的原理,并通過實際的例子,利用樸素貝葉斯思想,解決機器學習問題。讓你快速對樸素貝葉斯有直覺且形象的了解。

好啦!紅色石頭終于明白了如何利用樸素貝葉斯法,來判斷瓜是否熟了。

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 總結

本文以紅色石頭買西瓜的經曆,來給大家形象解釋了什麼是先驗機率、後驗機率,介紹了貝葉斯定理和樸素貝葉斯法。最後,将樸素貝葉斯法用于如何挑選西瓜,判斷西瓜是否熟了。本文以最白話的語言解釋了樸素貝葉斯的基本思想和分類過程。不知道紅色石頭的這次買瓜經曆是否對你了解樸素貝葉斯有所幫助呢?