03 樸素貝葉斯(NBM)

樸素貝葉斯(Naive Bayesian Model)

1、定義:

貝葉斯定理是關於隨機事件A和B的條件概率(或邊緣概率)的一則定理。其中P(A|B)是在B發生的情況下A發生的可能性。

 

貝葉斯法事概率論你框架下實施決策的基本方法,對分類任務來說,在所有相關概率都已知的情況下,如何運用這些概率來推測,分類

 

樸素貝葉斯最核心的部分是貝葉斯法則,而貝葉斯法則的基石是條件概率

 

條件概率公式

A,B是兩個事件,且P(B)>0,則在事件B發生的條件下,事件A發生的條件概爲:

由條件概率可以推斷出貝葉斯公式

換個形象的表達形式,如下:

我們最終求的p(類別|特徵)即可!

 

我們把P(A)稱爲"先驗概率",即在B事件發生之前,我們對A事件概率的一個判斷。P(A|B)稱爲"後驗概率",即在B事件發生之後,我們對A事件概率的重新評估。P(B|A)/P(B)稱爲"可能性函數",這是一個調整因子,使得預估概率更接近真實概率。

 

所以,條件概率可以理解成下面的式子:後驗概率 = 先驗概率 調整因子

 

這就是貝葉斯推斷的含義。我們先預估一個"先驗概率"P(A),然後加入實驗結果B如果實驗增強了"先驗概率",我們就可以得到更接近事實的"後驗概率"。

1、"可能性函數"P(B|A)/P(B)>1,"先驗概率"被增強,事件A的發生的可能性變大

2、"可能性函數"P(B|A)/P(B)=1,意味着B事件無助於判斷事件A的可能性;

3、"可能性函數"P(B|A)/P(B)<1,意味着"先驗概率"被削弱,事件A的可能性變小。

 

 

例題分析

下面我先給出例子問題。

給定數據如下:

 

現在給我們的問題是,如果一對男女朋友,男生想女生求婚,男生的四個特點分別是不帥性格不好身高矮不上進,請你判斷一下女生是嫁還是不嫁?

 

這是一個典型的分類問題,轉爲數學問題就是比較

p(嫁 | (不帥、性格不好、身高矮、不上進))

p(不嫁 | (不帥、性格不好、身高矮、不上進))

的概率,誰的概率大,我就能給出嫁或者不嫁的答案!

 

這裏我們聯繫到樸素貝葉斯公式:

 

我們需要求p(嫁|(不帥、性格不好、身高矮、不上進),這是我們不知道的,但是通過樸素貝葉斯公式可以轉化爲好求的三個量.

 

我們將上面公式整理一下如下:

 

下面我將一個一個的進行統計計算(在數據量很大的時候,根據中心極限定理,頻率是等於概率的,這裏只是一個例子,所以我就進行統計即可)。

 

p(嫁)=?

首先我們整理訓練數據中,嫁的樣本數如下

 

p(嫁) = 6/12(總樣本數) = 1/2

 

p(不帥|嫁)=?統計滿足樣本數如下:

 

p(不帥|) = 3/6 = 1/2 在嫁的條件下,看不帥有多少

 

我們把所有已知的概率帶入公式,就可以得出

 

= (1/2*1/6*1/6*1/6*1/2)/(1/3*1/3*7/12*1/3)


p (不嫁|不帥、性格不好、身高矮、不上進) = ((1/6*1/2*1*1/2)*1/2)/(1/3*1/3*7/12*1/3)

 

p (不嫁|不帥、性格不好、身高矮、不上進) > p (|不帥、性格不好、身高矮、不上進)

 

得出不嫁的結論

 

 

2、貝葉斯 ==》 樸素貝葉斯

 

由概率論的知識我們可以知道,這個等式成立是有條件的,這個條件就是特徵之間相互獨立。(然而實際當中,特徵值之間往往不是相互獨立的)

 

這就是樸素貝葉斯分類有樸素一詞的來源,

樸素貝葉斯算法 = 貝葉斯算法 + 各個特徵之間相互獨立(限定條件)

這一假設使得貝葉斯法變得簡單,但有時會犧牲一定的分類準確率。

 

 

=================================

但是爲什麼需要假設特徵之間相互獨立呢?

1、我們這麼想,假如沒有這個假設,那麼我們對右邊這些概率的估計其實是不可做的,這麼說,我們這個例子有4個特徵,其中帥包括{帥,不帥},性格包括{不好,好,爆好},身高包括{高,矮,中},上進包括{不上進,上進}他們是相互關聯的,那麼四個特徵的聯合概率分佈總共是4維空間,總個數爲2*3*3*2=36個。

 

36個,計算機掃描統計還可以,但是現實生活中,往往有非常多的特徵,每一個特徵的取值也是非常之多,那麼通過統計來估計後面概率的值,變得幾乎不可做,這也是爲什麼需要假設特徵之間獨立的原因。

 

2、假如我們沒有假設特徵之間相互獨立,那麼我們統計的時候,就需要在整個特徵空間中去找,比如統計p(不帥、性格不好、身高矮、不上進|),

 

我們就需要在嫁的條件下,去找四種特徵全滿足分別是不帥,性格不好,身高矮,不上進的人的個數,這樣的話,由於數據的稀疏性,很容易統計到0的情況。 這樣是不合適的。

 

根據上面倆個原因,樸素貝葉斯法對條件概率分佈做了條件獨立性的假設,由於這是一個較強的假設,樸素貝葉斯也由此得名!這一假設使得樸素貝葉斯法變得簡單,但有時會犧牲一定的分類準確率。

================================

 

3貝葉斯網絡

樸素貝葉斯算法在計算概率值上是假設各個特徵是相互獨立的。貝葉斯網絡則將各個特徵之間的關聯考慮進去。

 貝葉斯網絡,又稱信念網絡,或有向無環圖模型,是一種概率圖模型。它是一種模擬人類推理過程中因果關係的不確定性處理模型,其網絡拓樸結構是一個有向無環圖(DAG)。 

    貝葉斯網絡的有向無環圖中的節點表示隨機變量,它們可以是可觀察到的變量,或隱變量、未知參數等。認爲有因果關係(或非條件獨立)的變量或命題則用箭頭來連接。若兩個節點間以一個單箭頭連接在一起,表示其中一個節點是“因(parents)”,另一個是“果(children)”,兩節點就會產生一個條件概率值。

 

=================================

貝葉斯網絡概率的計算

貝葉斯網絡概率的計算很簡單,是從聯合概率分佈公式中變換所得,下面是聯合概率分佈公式:

 

而在貝葉斯網絡中,由於存在前述的關係存在,該公式就被簡化爲了如下:

 

其中Parent(xi),表示的是xi的前驅結點,如果還不理解,可以對照我後面的代碼,自行調試分析。

=================================

 

 

 

3、優缺點

優點

§ 樸素貝葉斯模型發源於古典數學理論,有着堅實的數學基礎,以及穩定的分類效率。

§ 對小規模的數據表現很好,能個處理多分類任務,適合增量式訓練;

§ 對缺失數據不太敏感,算法也比較簡單,常用於文本分類。

缺點

§ 需要計算先驗概率;

§ 分類決策存在錯誤率;

§ 對輸入數據的表達形式很敏感。

 

 

4、應用場景

對於在小數據集上有顯著特徵的相關對象,樸素貝葉斯方法可對其進行快速分類

§ 中文分詞領域

§ 統計機器翻譯

§ 多用於文本分類,

§ 垃圾郵件過濾

§ 拼寫檢查/糾正器的文章

§ 情感分析

§ 消費者分類

 

 

 

 ===彩蛋===

=================================

P(我們猜測他想輸入的單詞 | 他實際輸入的單詞)

這個概率。並找出那個使得這個概率最大的猜測單詞。顯然,我們的猜測未必是唯一的,就像前面舉的那個自然語言的歧義性的例子一樣;這裏,比如用戶輸入: thew ,那麼他到底是想輸入 the ,還是想輸入 thaw ?到底哪個猜測可能性更大呢?幸運的是我們可以用貝葉斯公式來直接出它們各自的概率,我們不妨將我們的多個猜測記爲 h1 h2 .. ( h 代表 hypothesis),它們都屬於一個有限且離散的猜測空間 H (單詞總共就那麼多而已),將用戶實際輸入的單詞記爲 D ( D 代表 Data ,即觀測數據),

=================================

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章