1、模型的定義
朴素貝葉斯是基於貝葉斯定理與特征條件獨立假設的分裂方法。首先我們來了解下貝葉斯定理和所要建立的模型。對於給定的數據集
假定輸出的類別yi ∈ {c1, c2, ...., ck},朴素貝葉斯通過訓練數據集的條件概率分布$P(x|y)$來學習聯合概率。因此在這里我們近視的求先驗概率分布和條件概率分布來替代它。先驗概率分布如下
對於先驗概率的求解,可以根據大數定理認為就是該類別在總體樣本中的比例。條件概率分布如下
通過先驗概率和條件概率的求解就可以學習到聯合概率,然而在這里的條件概率也是不好求的,若直接求解的話,參數的個數是所有特征取值個數的連乘。因此在這里引入了朴素貝葉斯思想。
朴素貝葉斯法假定上面的條件概率中各特征之前是相互獨立的。此時我們可以做鏈式展開,表達式如下
朴素貝葉斯法實際上是有求聯合概率分布的過程,以及通過聯合概率求后驗概率(也是一種條件概率)的過程,像這類的分類器屬於生成式模型。區別於它的就是判別生成式模型,常見的有決策樹,邏輯回歸,SVM等,這類模型都是直接生成結果(可能是P(y) 或者P(y|x) )。而貝葉斯是要先計算$p(x, y)$的,了解了先驗概率和條件概率的計算過程,我們再來看看貝葉斯定理是如何計算后驗概率的
引入朴素的思想,假設各特征之間相互獨立
這就是朴素貝葉斯分類的基本公式,因此我們的模型可以建為
而對於右邊式子中的分母,分母是一個和類別無關的式子,也就是說對於所有的ck都是一樣的,然后在這里我們只是求的最大概率的類別,因此去掉這一項是不會影響結果的(即對表達式進行同比例的放大或縮小是不會影響最大解的判斷的),最終的式子可以寫成
2、后驗概率最大化
先來了解下0-1損失函數:
此時的期望風險函數,在優化模型的時候我們的目的是為了使得期望損失最小化
而對於朴素貝葉斯模型,期望損失函數可以表示為
這里面的損失函數和0-1損失有所不同,可以看成分類到每個類別的概率乘以0-1損失函數,也就是說在k中只有一次L函數會取0,其余的都取1,此時我們還要使得取0時的條件概率P(ck|x)是最大的,這樣整體的期望損失就是最小的。具體的數學推導過程如下
為了使得期望風險最小化就是使得后驗概率最大化。
3、朴素貝葉斯的參數估計
采用極大似然估計來求解先驗概率和條件概率,先驗概率的極大似然估計
條件概率的極大似然估計
但是用極大似然估計可能會出現概率值為0的情況。這時候會影響到后驗概率的計算(因為鏈式求解時,一旦存在某一個值為0,則會導致整個鏈式的解為0,也就是求得的條件概率為0).因此我們會采用貝葉斯估計,先驗概率的表達式
貝葉斯估計的條件概率表達式
因此朴素貝葉斯模型只要計算出訓練集上各類參數,比如先驗概率,各特征在各類別上的概率(這些是用來計算條件概率的)等,基於這些學得的值來預測
4、朴素貝葉斯總結
朴素貝葉斯的優點:
1)朴素貝葉斯模型分類效率穩定
2)對小規模的數據集表現很好,能處理多分類問題,適合增量式訓練,尤其是數據集超出內存后,我們可以一批批的去訓練
3)對缺失數據不太敏感,算法比較簡單,常用於文本分類
朴素貝葉斯的缺點;
1)理論上,朴素貝葉斯較其他模型相比具有最小的誤差率,但實際上卻不一定,因為朴素貝葉斯引進了各特征之間相互獨立這一假設。因此在各特征之間相關性較強時,朴素貝葉斯表現一般,但是在各特征之間獨立性很強時,朴素貝葉斯表現很好
2)通過先驗和數據來決定后驗的概率從而決定分類,所以分類決策存在一定的錯誤率
3)對輸入數據的表達形式很敏感