機(jī)器學(xué)習(xí)之樸素貝葉斯算法基本原理

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

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

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

樸素貝葉斯是基于“特征之間是獨(dú)立的”這一樸素假設(shè),應(yīng)用貝葉斯定理的監(jiān)督學(xué)習(xí)算法。

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

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

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

需掌握的基本概念:

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

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

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

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

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

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

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

也就是說,當(dāng)西瓜“色澤青綠”時(shí),有87.5%的概率是“好瓜”。

當(dāng)然,僅僅靠一個(gè)特征是無法判斷西瓜好壞的,那么多個(gè)特征的時(shí)候要怎么計(jì)算呢?我們來擴(kuò)展一下,再引入一“敲擊聲沉悶”特征。

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

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

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

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

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

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

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

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%

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

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

1. 多項(xiàng)式樸素貝葉斯

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

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

2. 高斯樸素貝葉斯

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

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

3. 伯努利樸素貝葉斯

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

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

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

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

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

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

小樣本學(xué)習(xí)效果好:相較于依賴大量數(shù)據(jù)擬合復(fù)雜模型的方法,樸素貝葉斯算法在小樣本情況下表現(xiàn)較為出色,因?yàn)樗⒉辉噲D從數(shù)據(jù)中學(xué)習(xí)復(fù)雜的非線性關(guān)系,而是基于統(tǒng)計(jì)學(xué)原理對類別概率進(jìn)行估計(jì)。

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

可以處理不相關(guān)的特征:樸素貝葉斯可以處理數(shù)據(jù)集中不相關(guān)的特征,并且仍然表現(xiàn)良好。

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

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

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

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

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

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

五、樸素貝葉斯算法的應(yīng)用與實(shí)踐

1. 垃圾郵件過濾

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

2. 文本分類

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

3. 醫(yī)學(xué)診斷

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

4. 推薦系統(tǒng)

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

5. 自然語言處理

在詞性標(biāo)注、命名實(shí)體識別等自然語言處理任務(wù)中,樸素貝葉斯亦有應(yīng)用。通過對上下文單詞序列進(jìn)行建模,它可以實(shí)現(xiàn)對未知詞匯的標(biāo)記預(yù)測。

參考文檔:

樸素貝葉斯算法:如何用AI買到好瓜?-人人都是產(chǎn)品經(jīng)理-AI小當(dāng)家

機(jī)器學(xué)習(xí) | 貝葉斯算法及應(yīng)用-人人都是產(chǎn)品經(jīng)理-SincerityY

七大機(jī)器學(xué)習(xí)常用算法精講:樸素貝葉斯算法(二)-人人都是產(chǎn)品經(jīng)理-火粒產(chǎn)品

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

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

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

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