機器學習——貝葉斯演算法

SongpingWang發表於2018-06-02

一、貝葉斯公式

1.1 概率:

這裡寫圖片描述

1.2 拉普拉斯平滑
拉普拉斯平滑為了解決零概率的問題,法國數學家拉普拉斯最早提出用加1的方法估計 
沒有出現過的現象的概率,所以加法平滑也叫做拉普拉斯平滑。 

假定訓練樣本很大時,每個分量x的計數加1造成的估計概率變化可以忽略不計, 
但可以方便有效的避免零概率問題。 

P(yk|x)=P(yk)P(xi|yk)
公式:P(y_k|x) =P(y_k) * ∏P(x_i|y_k)
上述是一個多項乘法公式,其中有一項數值為0,則整個公式就為0,顯然不合理,
避免每一項為零的做法:  在分子+1、分母上加N樣本種類(分子加k,分母加kN)

P(y)=(|Dy|+1)(|D|+N)
P(y) = \frac{(|D_y| + 1)}{(|D| + N)}
例如:一個班級: 男生(短頭髮)= 20 個
                男生(長頭髮)= 0 個
                女生(短頭髮)= 15 個
                女生(長頭髮)= 20 個

拉普拉斯平滑概率後 :
    男生(短頭髮)概率 = (20+1)/(55+4)  = 21/59
    男生(長頭髮)概率 = (0+1)/(55+4)   = 1/59
    女生(短頭髮)概率 = (15+1)/(55+4)  = 16/59
    女生(長頭髮)概率 = (20+1)/(55+4)  = 21/59

二、朴樹貝葉斯分類原理

2.1朴樹貝葉斯
基本流程:
確定特徵屬性--> 獲取訓練樣本--> 對每個樣本計算P(Ci)
--> 對每個特徵屬性 計算所有劃分的條件概率P(X1,X1,,,Xn|Ci)
--> 對每個類別計算P(X|Ci)*P(Ci)--> 以P(x|yi)P(yi)最大項作為x所屬類別
2.2 半樸素基貝本葉流斯程分類器
在樸素的分類中,我們假定了各個屬性之間的獨立,這是為了計算方便。 
雖然樸素貝葉斯的分類效果不錯,但是屬性之間畢竟是有關聯的,某個屬性依賴於另外的屬性, 
於是就有了半樸素貝葉斯分類器: 

P(c|x)P(c)i=1dP(xi|c,pai)
P(c|x) \propto P(c)\prod_{i=1}^{d}P(x_i|c,pa_i)
在正式進行計算的時候,將另外一個依賴的屬性加進去,計算量不會複雜太多, 
由於是基於“計數”,所以基本和樸素的計算方式類似。

訓練資料集

# 大小 顏色 形狀 標籤
1 青色 非規則
2 紅色 非規則
3 紅色 圓形
4 青色 圓形
5 青色 非規則
6 紅色 圓形
7 青色 非規則
8 紅色 非規則
9 青色 圓形
10 紅色 圓形

這裡寫圖片描述

屬性的依賴關係定義如下:
大小的依賴屬性為:形狀,且屬性取值為大時依賴形狀為圓形;
顏色不存在依賴屬性;
形狀的依賴屬性為大小,且屬性取值為圓形時依賴大小為大;
則先驗概率 P(c) :
    P(c = 好果)= (4+1) / (10+2) = 5/12
    P(c = 一般) = (6+1) / (10+2) = 7/12 

帶有依賴屬性的類條件概率:
    P(大小=大 | c=好果,形狀=圓形) = (2+1)/(3+2) = 3/5
    P(顏色=青色 | c=好果) = (0+1)/(4+2) = 1/6
    P(形狀=圓形 | c=好果,大小=大) = (2+1) / (3+2) = 3/5
    P(大小=大 | c=一般,形狀=圓形) = (1+1) /( 2+2) = 2/4
    P(顏色=青色 | c=一般) = (5+1)/(6+2) = 6/8
    P(形狀=圓形 | c=一般,大小=大) = (1+1)/(3+2) = 2/5 

P(c=好果) * P(大小=大 | c=好果,形狀=圓形) * P(顏色=青色 | c=好果) * P(形狀=圓形 | c=好果,大小=大) 
    = 5/12 * 3/5 * 1/6 * 3/5 = 0.025

P(c=一般) * P(大小=大 | c=一般,形狀=圓形) * P(顏色=紅色 | c=一般) * P(形狀=圓形 | c=一般,大小=大) 
    = 7/12 * 2/4 * 6/8 * 2/5= 0.0875

三、程式碼演示

sklearn.naive_bayes 提供了3個不同朴樹貝葉斯演算法

P(Ci|X1,X2,...Xn)=P(X1,X2,...Xn|Ci)P(Ci)P(X1,X2,...Xn)
P(C_i|X_1,X_2,...X_n) = \frac{P(X_1,X_2,...X_n|C_i)*P(C_i)}{P(X_1,X_2,...X_n)}
sklearn.naive_bayes.GaussianNB 高斯分佈     #連續性
sklearn.naive_bayes.MutinomialNB 多項分佈   #多項分佈-發生頻次
sklearn.naive_bayes.BernoulliNB 伯努利分佈  #伯努利分佈-(0,1)分佈

四、總結

應用場景:
    文字分析(朴樹貝葉斯應用最廣泛的領域)
        文字分類
        垃圾郵件識別
        文字情感判別
    多分類場景

相關文章