機器學習之樸素貝葉斯算法基本原理

0 評論 789 瀏覽 0 收藏 13 分鐘

什么是樸素貝葉斯算法?樸素貝葉斯算法可以如何被應用與實踐?關于這些問題,作者做了較為詳細的闡述,我們不妨一起來看一下。

一、什么叫樸素貝葉斯算法?

樸素貝葉斯是基于“特征之間是獨立的”這一樸素假設,應用貝葉斯定理的監(jiān)督學習算法。

二、樸素貝葉斯算法的基本原理是什么?

貝葉斯公式又被稱為貝葉斯規(guī)則,其原理大概是:當不能準確知道事物本質時,可以根據與事物特定本質相關的事件出現的多少去判斷該事物的本質。

比如,我們雖然無法準確的知道某個西瓜是不是好西瓜,但是我們可以通過敲擊聲、色澤、根蒂形狀等特征去判斷是否是好西瓜,如果它的敲擊聲沉悶、色澤青綠、根蒂蜷縮,那我們根據經驗可以判斷它大概率是個好西瓜。

需掌握的基本概念:

  • 先驗概率:事件A根據經驗來判斷發(fā)生的概率,記作P(A)。比如從歷史數據中統(tǒng)計出西瓜“色澤青綠”事件的概率為60%,那么P(色澤青綠)=60%
  • 條件概率:事件B在事件A已發(fā)生條件下的概率,記作P(B|A)。比如從歷史數據中統(tǒng)計出西瓜為“好瓜”時,“色澤青綠”的概率為80%,那么P(色澤青綠|好瓜)=80%
  • 后驗概率:基于先驗概率求得的反向條件概率。P(B|A)是A發(fā)生后B的條件概率,也可以稱作B的后驗概率,所以后延概率的公式和條件概率一樣,但區(qū)別在于條件概率是從歷史數據中統(tǒng)計得來,而后驗概率是基于先驗概率和條件概率計算得來。
  • 聯(lián)合概率:表示兩個事件共同發(fā)生的概率。A與B的聯(lián)合概率一般表示為P(AB)或P(A,B)。比如“色澤青綠”(事件A)和“敲擊聲沉悶”(事件B)同時發(fā)生的概率為30%,則事件A和事件B同時發(fā)生的概率P(AB)=30%

樸素貝葉斯是在貝葉斯原理的基礎上,假定特征與特征之間相互獨立,從而得到了如下樸素貝葉斯的公式:

假設公式里的A代表“好瓜”,B代表“色澤青綠”,那么我們可以得到如下幾個概率:

P(A):歷史數據中,統(tǒng)計西瓜為“好瓜”的概率,比如70%

P(B):歷史數據中,統(tǒng)計西瓜為“色澤青綠”的概率,比如60%

P(B|A):歷史數據中,統(tǒng)計西瓜為“好瓜”時,“色澤青綠”的概率,比如75%

那么我們就可以根據這幾個概率,代入公式,計算得到P(A|B),即西瓜“色澤青綠”時,為“好瓜”的概率:P(A|B) = P(B|A)*P(A)/P(B) = 0.75*0.7/0.6 = 87.5%

也就是說,當西瓜“色澤青綠”時,有87.5%的概率是“好瓜”。

當然,僅僅靠一個特征是無法判斷西瓜好壞的,那么多個特征的時候要怎么計算呢?我們來擴展一下,再引入一“敲擊聲沉悶”特征。

也就是假設A1代表“好瓜”,A2代表“壞瓜”,B1代表“色澤青綠”,B2代表“敲擊聲沉悶”,計算當西瓜同時具備“色澤青綠”和“敲擊聲沉悶”特征時,為好瓜或壞瓜的概率。

P(A1):歷史數據中,統(tǒng)計西瓜為“好瓜”的概率,比如70%

P(A2):歷史數據中,統(tǒng)計西瓜為“壞瓜”的概率,比如30%

P(B1B2):歷史數據中,統(tǒng)計西瓜同時具備“色澤青綠”和“敲擊聲沉悶”特征的概率,比如30%

P(B1B2|A1):歷史數據中,統(tǒng)計西瓜為“好瓜”時,同時具備“色澤青綠”和“敲擊聲沉悶”特征的概率,比如40%

P(B1B2|A2):歷史數據中,統(tǒng)計西瓜為“壞瓜”時,同時具備“色澤青綠”和“敲擊聲沉悶”特征的概率,比如15%

我們將以上概率代入公式,分別得到如下結果:

P(A1|B1B2) = P(B1B2|A1)*P(A1)/P(B1B2) = 0.4*0.7/0.3= 93.33%

P(A2|B1B2) = P(B1B2|A2)*P(A2)/P(B1B2) = 0.15*0.3/0.3 = 15%

也就是說,當西瓜同時具備“色澤青綠”和“敲擊聲沉悶”特征時,有93.33%的概率是“好瓜”,15%的概率是“壞瓜”。

三、樸素貝葉斯算法的變種及其特性

1. 多項式樸素貝葉斯

多項式樸素貝葉斯指當特征屬性服從多項分布(特征是離散的形式的時候)。

多項式樸素貝葉斯適用于處理離散型和計數型特征,常用于文本分類任務。它的核心思想是對每個類別計算文檔中所有單詞的條件概率,并假設各單詞的出現與否獨立于其他單詞。

2. 高斯樸素貝葉斯

高斯樸素貝葉斯指當特征屬性為連續(xù)值時,而且分布服從高斯分布,那么在計算P(x|y)的時候可以直接使用高斯分布的概率公式。

高斯樸素貝葉斯適用于數值型連續(xù)特征,假設每個特征在給定類別下獨立且服從高斯分布(正態(tài)分布)。在構建模型時,分別估計每個類別下每個特征的均值和方差,然后基于這些參數計算新的數據點屬于各類別的概率。

3. 伯努利樸素貝葉斯

伯努利樸素貝葉斯指當特征屬性為連續(xù)值時,而且分布服從伯努利分布, 那么在計算P(x|y)的時候可以直接使用伯努利分布的概率公式

對于二元特征,如文本中的詞頻是否大于零,伯努利樸素貝葉斯使用二項式分布進行建模。它關注的是特征在文檔中出現的次數,而非具體的頻率值,因此特別適合處理文本分類中的“詞是否出現”的場景。

四、樸素貝葉斯算法的優(yōu)勢與局限性

1. 樸素貝葉斯算法的優(yōu)勢

計算效率高:由于樸素貝葉斯算法在訓練階段僅需要計算先驗概率和條件概率,無需進行復雜的迭代優(yōu)化過程,因此其訓練速度快,尤其對于大數據集具有很好的可擴展性。同時,在預測階段,只需對新樣本的特征進行簡單的概率乘積或密度函數計算,時間復雜度較低。

處理高維數據能力強:對于包含大量特征的數據集,即使數據維度極高,樸素貝葉斯算法仍能保持較快的學習速度和預測速度,這是許多其他復雜模型難以比擬的。

小樣本學習效果好:相較于依賴大量數據擬合復雜模型的方法,樸素貝葉斯算法在小樣本情況下表現較為出色,因為它并不試圖從數據中學習復雜的非線性關系,而是基于統(tǒng)計學原理對類別概率進行估計。

易于理解和實現:樸素貝葉斯算法原理相對簡單,易于理解,代碼實現也較為直觀,這為實際應用中的調試和優(yōu)化提供了便利。

可以處理不相關的特征:樸素貝葉斯可以處理數據集中不相關的特征,并且仍然表現良好。

2. 樸素貝葉斯算法的局限性

特征獨立性假設過于簡化:算法的核心“樸素”假設——特征相互獨立,這一假設在很多現實問題中往往不成立。特征間的相關性被忽略可能導致模型預測性能受到影響,特別是在高度相關的特征存在時,可能會低估某些類別的后驗概率。

對輸入數據分布敏感:如高斯樸素貝葉斯假設特征服從高斯分布,若實際數據不符合這種分布特性,則會導致預測結果產生偏差。例如,當特征值集中在某一區(qū)間而非正態(tài)分布時,高斯樸素貝葉斯可能無法準確捕捉數據的真實規(guī)律。

缺乏特征選擇能力:樸素貝葉斯算法對待所有特征同等重要,無法自動識別并剔除無關或者噪聲特征,這在一定程度上降低了模型的泛化能力和解釋性。

無法處理連續(xù)變量:樸素貝葉斯假設特征是離散的,對于連續(xù)型數據需要進行離散化處理,可能會導致信息損失

需要足夠的樣本數據:樸素貝葉斯是基于統(tǒng)計學的算法,需要足夠的樣本數據來估計概率分布參數,否則會導致概率估計不準確,影響效果

五、樸素貝葉斯算法的應用與實踐

1. 垃圾郵件過濾

樸素貝葉斯算法在垃圾郵件過濾領域應用廣泛。通過分析郵件中的關鍵詞、短語出現頻率等特征,算法能夠準確識別并分類垃圾郵件和正常郵件。即使存在新類型的垃圾郵件攻擊,由于其基于統(tǒng)計學習的方法,也能夠快速適應并更新模型。

2. 文本分類

在新聞分類、情感分析等領域,樸素貝葉斯算法同樣表現出色。它能有效地對文檔進行主題分類或情感傾向判斷,通過計算詞語在各類別下的概率分布來進行決策,尤其對于大規(guī)模文本數據集,具有高效處理的優(yōu)勢。

3. 醫(yī)學診斷

在醫(yī)療領域,樸素貝葉斯算法可用于疾病預測和診斷。例如,在根據患者的癥狀、檢查結果等特征信息預測患者是否患有某種疾病時,算法能夠快速計算出各種可能疾病的后驗概率,并選擇最有可能的那個作為預測結果。

4. 推薦系統(tǒng)

盡管樸素貝葉斯在推薦系統(tǒng)中不如協(xié)同過濾等方法常見,但在某些場景下,如用戶歷史行為數據稀疏時,可以通過樸素貝葉斯算法來預測用戶對未嘗試過的商品或服務的興趣度。

5. 自然語言處理

在詞性標注、命名實體識別等自然語言處理任務中,樸素貝葉斯亦有應用。通過對上下文單詞序列進行建模,它可以實現對未知詞匯的標記預測。

參考文檔:

樸素貝葉斯算法:如何用AI買到好瓜?-人人都是產品經理-AI小當家

機器學習 | 貝葉斯算法及應用-人人都是產品經理-SincerityY

七大機器學習常用算法精講:樸素貝葉斯算法(二)-人人都是產品經理-火粒產品

本文由@厚謙 原創(chuàng)發(fā)布于人人都是產品經理,未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協(xié)議。

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!