樸素貝葉斯(Naive Bayes)

核心:貝葉斯定理+條件獨立性假設。

1.貝葉斯定理:

                            

其中,(x1,...,xn)爲特徵向量,y爲數據類別。

2.分類:

貝葉斯分類問題可描述爲:對特徵向量爲X=(x1,x2,...,xn)的數據項進行分類。即對於給定的輸入X,計算該數據項對每個類別的後驗概率 P(Y=ck | X=(x1,...,xn)),將後驗概率最大的類作爲X的分類輸出。

後驗概率的計算即根據貝葉斯定理,有:

                           

            a.分母可由全概率公式展開爲

                                                                  

            b.分子部分爲複雜的條件概率乘法,樸素貝葉斯作了條件獨立性假設,即認爲樣本的各維特徵都是獨立的(由於這是一                個較強的假設,樸素貝葉斯也由此得名),所以分子可化爲                                                       

                                                                  

   這樣,樸素貝葉斯分類的基本公式即爲           

                        

  注意到,分母對於所有的類別都是相同的,我們要找出最大概率對應的類別,只考慮分子即可,

  所以,分類器即爲

                        

3.平滑處理

(參考:李航《統計學習方法》)

在計算概率時,可能出現概率爲0的情況,如某個離散型隨機變量觀測值的某一維並未在訓練集中出現,則其條件概率爲0,導致對應類別的後驗概率爲0,失去了觀測的條件,這是不合理的,會使分類產生偏差。爲此,需進行一定的平滑處理。

方法如下,對每個類別中的觀測樣本數加上一個常數。

先驗概率:

                                                       

條件概率:

                                                  

當lambda=1時,稱爲拉普拉斯平滑(Laplace smoothing).

在統計學上,將這種估計方法稱爲貝葉斯估計。

4.例子:性別分類

來自http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html

 下面是一組人類身體特徵的統計資料:

  性別  身高(英尺) 體重(磅)  腳掌(英寸)

  男    6       180     12 
  男    5.92     190     11 
  男    5.58     170     12 
  男    5.92     165     10 
  女    5       100     6 
  女    5.5      150     8 
  女    5.42     130     7 
  女    5.75     150     9

   已知某人身高6英尺、體重130磅,腳掌8英寸,請問該人是男是女?

   解:根據樸素貝葉斯分類器,計算下面兩個式子的值,比較大小即可。

         此人爲男性概率: P(男) x P(身高|男) x P(體重|男) x P(腳掌|男)

         此人爲女性概率: P(女) x P(身高|女) x P(體重|女) x P(腳掌|女)

a.先驗概率P(男)和P(女)即爲訓練數據中,男性樣本和女性樣本的佔比。       

b.這裏的困難在於,由於身高、體重、腳掌都是連續變量,不能採用離散變量的方法計算概率。而且由於樣本太少,所以也無法分成區間計算。怎麼辦?

         這時,可以假設男性和女性的身高、體重、腳掌都是正態分佈,通過樣本計算出均值和方差,也就是得到正態分佈的密度函數。有了密度函數,就可以把值代入,算出某一點的密度函數的值(也即常用的高斯型樸素貝葉斯算法GaussianNB)。

        比如,男性的身高是均值5.855、方差0.035的正態分佈。所以,男性的身高爲6英尺的概率的相對值等於1.5789(大於1並沒有關係,因爲這裏是密度函數的值,只用來反映各個值的相對可能性)。

              

將所需的先驗概率和條件概率計算出來後,即可計算出性別的分類結果:

    男性:P(身高=6|男) x P(體重=130|男) x P(腳掌=8|男) x P(男) 

     = 6.1984 x e-9

  女性:P(身高=6|女) x P(體重=130|女) x P(腳掌=8|女) x P(女) 

       = 5.3778 x e-4

可以看到,女性的概率比男性高,所以判斷該人爲女性。

5.Python實現

鳶尾花數據實驗,參考https://blog.csdn.net/carmelcarmen/article/details/79250551


參考:

1.李航,《統計學習方法》

2.https://blog.csdn.net/cxmscb/article/details/69267326

3.http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html

4.https://www.cnblogs.com/pinard/p/6074222.html

5.http://sklearn.apachecn.org/cn/0.19.0/modules/naive_bayes.html

6.https://www.cnblogs.com/bqtang/p/3693827.html

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