機器學習算法——樸素貝葉斯

樸素貝葉斯(Naïve Bayes)屬於監督學習算法,實現簡單,學習效率高;因爲創建在貝葉斯理論之上,涉及到統計學方法,因此在大樣本量下會有較好的表現,固然樣本須要在必定程度上反映真實分佈狀況。算法

該算法的一條假設爲:輸入的特徵向量的各份量之間兩兩條件獨立。由於這條假設比較嚴格,可以徹底符合該假設的應用場景並很少見,因此給這個算法帶來了「樸素」的修飾。然兒這並不妨礙樸素貝葉斯做爲一個機率分類器在文本分類方面的優異表現,特別是在垃圾郵件識別領域,樸素貝葉斯表現突出。網絡

本文着重介紹樸素貝葉斯在分類任務上的應用(只考慮特徵向量各份量均爲離散值的狀況,在實際應用中,遇到連續取值的變量一般也會將其離散化)。學習

1 問題描述

假設咱們得到以下訓練數據(訓練集中樣本數爲N):3d

其中,x 表示特徵向量(設定爲n維,表示有n個離散屬性值),y 表示標籤變量,表徵對應的特徵向量表明的樣本所屬的類別,y 的取值範圍以下(類別數爲K):blog

預測:當特徵向量爲X時,標籤y應取何值。事件

2 貝葉斯定理

貝葉斯定理是關於隨機事件A和B的條件機率的一則定理:圖片

其中 A 以及 B 爲隨機事件,且 P(B) 不爲零。P(A|B) 是指在事件 B 發生的狀況下事件 A 發生的機率。效率

在貝葉斯定理中,上式中的項有如下稱謂:
P(A|B) 因爲得自 B 的取值而被稱做 A 的後驗機率。
P(A) 是 A 的先驗機率(或邊緣機率),稱爲"先驗"是由於不考慮 B 的狀況。變量

3 應用貝葉斯理論解決分類問題

貝葉斯理論解決分類問題的思路以下:
輸入待預測數據X,則預測類別 y 取使得 y 的後驗機率最大的類別值,即:方法

應用貝葉斯定理:

因爲 y 的取值不會影響上式的分母,因此能夠將上式轉化爲:

進一步考慮屬性間的條件獨立性,對於n維特徵向量:

能夠將它的後驗機率轉化爲:

則(2)式能夠轉爲:

選擇後驗機率最大的類別做爲預測類別,由於已經證實:後驗機率最大化可使指望風險最小化。

到此爲止,咱們將類別預測問題轉爲後驗機率的計算與比較問題;爲了進一步計算,須要對(3)式中涉及的先驗機率與條件機率進行估計。

4 機率估計

4.1 極大似然估計

先驗機率的極大似然估計:

I 用於計數,用類別爲Ck的樣本佔總樣本的比例做爲y取Ck值的先驗機率。

特徵向量的第j個屬性變量的條件機率的極大似然估計:

一樣是將樣本比例做爲機率的思想。

4.2 貝葉斯估計(最大後驗機率估計)

極大似然估計先驗機率與條件機率時,可能出現有關樣本數爲0的狀況,因爲後驗機率是多項連乘的結果,那麼獲得的後驗機率也爲0,影響分類的效果。
所以,在估計時須要作平滑處理,這種方法被稱爲貝葉斯估計。

先驗機率的貝葉斯估計:

其中 K 爲總的類別數,λ爲可調參數。

特徵向量的第j個屬性變量的條件機率的貝葉斯估計:

其中 Sj 爲第 j 個屬性所取的不一樣的離散值的數量,λ爲可調參數。

一般貝葉斯估計中的參數 λ=1 ,這時被稱爲Laplace平滑。

經過幾率估計獲得先驗機率以及條件機率的機率值後,就能夠計算獲得各個類別的後驗機率,從而將具備最大後驗機率的類別做爲樸素貝葉斯分類器的輸出類別。注意:最大後驗機率的思想不只用於最後的類別輸出,在進行機率估計時也用到最大後驗機率估計(即前文所述的貝葉斯估計),只不過推導出來的公式表現爲拉普拉斯平滑的形式。
聲明:文中使用的圖片源自網絡
相關文章
相關標籤/搜索