樸素貝葉斯演算法-推導總結
阿新 • • 發佈:2019-01-03
從今天起,總結機器學習演算法,先從最簡單的,樸素的貝葉斯演算法開始,為什麼最近又開始總結這些機器學習演算法那?原因很簡單,這些演算法很久之前都是推導過的,但是沒有總結,很快就忘記了,複習也不好複習,面試一問演算法題目還好,到了數學推導,就磕磕絆絆,然後被各種diss,任重而道遠。
相關知識:
(1)條件概率:
(2)很顯然可以得到:
(3)繼續推導可以得到:
(4)全概率公式(這裡只給公式,先前條件就不提了):
推導過程:
有了上面這幾個公式,基本就可以滿足要求了,下面,開始推導樸素的貝葉斯分類器,主要參考李航的《統計學習方法》中的過程。先,提出問題,現在給出一堆資料或者是訓練集:
解釋:x
表示特徵(可能有多個特徵),y
表示標籤(可能是多個標籤哦)。
樸素貝葉斯演算法對條件概率分佈做了條件獨立性的假設,所以具體的條件獨立性假設是:
公式1:
解釋: 表示,標籤Y
,中的一個值, 表示一組向量,可能有n
個特徵,為什麼連乘?因為假設相互獨立。
公式2:
解釋: 這個值要通過全概率公式來求,即
現在,把公式1帶入公式2得:
公式3:
其中
解釋:現在就得出了樸素貝葉斯法分類的基本公式了。
樸素貝葉斯法分類器可表示為:
公式4:
解釋:這個公式的意思就是,在所有的標籤中,選擇一個最大的後驗概率那個標籤,作為本次分類的結果。很顯然,在最大化後驗概率的時,公式4中的分母是相同的,所以可以進一步化簡得到:
公式5:
演算法優缺點:
樸素貝葉斯分類演算法,監督學習演算法,而且是生成模型,優缺點主要包括(主要參考其他博文,已經給出連結):
(1)演算法優點:
- 對大數量訓練和查詢時具有較高的速度。即使,使用超大規模的訓練集,針對每個專案通常也只會有相對較少的特徵數,並且對專案的訓練和分類也僅僅是特徵概率的數學運算而已。(適合大量資料)
- 支援增量式運算。即可以實時的對新增的樣本進行訓練。
- 樸素貝葉斯對結果解釋容易理解。
- 樸素貝葉斯模型發源於古典數學理論,有著堅實的數學基礎,以及穩定的分類效率。
- 所需估計的引數很少,對缺失資料不太敏感,演算法也比較簡單。
(2)演算法缺點:
- 由於使用了樣本屬性獨立性的假設,所以如果樣本屬性有關聯時其效果不好。
- 理論上,模型與其他分類方法相比具有最小的誤差率。但是實際上並非總是如此,這是因為模型假設屬性之