摘要:
1.算法概述
2.算法推導
3.算法特性及優缺點
4.注意事項
5.實現和具體例子
6.適用場合
內容:
1.算法概述
貝葉斯分類算法是統計學的一種分類方法,其分類原理就是利用貝葉斯公式根據某對象的先驗概率計算出其后驗概率,然后選擇具有最大后驗概率的類作為該對象所屬的類。
之所以稱之為"朴素",是因為貝葉斯分類只做最原始、最簡單的假設:所有的特征之間是統計獨立的(假設某樣本x有a1,...,aM個屬性,那么有:P(x)=P(a1,...,aM) = P(a1)*...*P(aM);)
這里給出NB的模型函數:
根據變量的分布不同,NB也分為以下3類:
朴素貝葉斯的伯努利模型(特征是布爾變量,符合01分布),在文本分類的情境中,特征是詞是否出現
朴素貝葉斯的多項式模型(特征是離散變量,符合多項分布),在文本分類的情境中,特征是詞的出現次數
朴素貝葉斯的高斯模型(特征是連續變量,符合高斯分布),在文本分類的情境中,特征是詞的TFIDF值
2.算法推導
貝葉斯定理:
其中P(y|x)是在x發生的情況下y發生的可能性。
在貝葉斯定理中,每個名詞都有約定俗成的名稱:
P(y)是y的先驗概率或邊緣概率。之所以稱為"先驗"是因為它不考慮任何x方面的因素。
P(y|x)是已知x發生后y的條件概率,也由於得自x的取值而被稱作y的后驗概率。
P(x|y)是已知y發生后x的條件概率,也由於得自y的取值而被稱作x的后驗概率。
P(x)是x的先驗概率或邊緣概率,也作標准化常量(normalizing constant).
由貝葉斯公式和各特征相互獨立的情況下,得到如下公式:
條件概率的計算方法:
1,離散分布-當特征屬性為離散值時,只要統計訓練樣本中特征a的各個特征值在每個類別中出現的頻率即可用來估計P(a(i)|y(k))。
2,連續分布-當特征屬性為連續值時,通常假定a|y服從高斯分布(正態分布)。
即:,而
3.算法特性及優缺點
優點:
1.算法簡單
2.所需估計參數很少
3.對缺失數據不太敏感
4.朴素貝葉斯的條件概率計算彼此是獨立的,因此特別適於分布式計算
5.朴素貝葉斯屬於生成式模型,收斂速度將快於判別模型(如邏輯回歸)
6.天然可以處理多分類問題
缺點:
1.因為朴素貝葉斯分類假設樣本各個特征之間相互獨立,這個假設在實際應用中往往是不成立的,從而影響分類正確性
2.不能學習特征間的相互作用
3.對輸入數據的表達形式很敏感。
4.注意事項
4.1 取對數:
實際項目中,概率P往往是值很小的小數,連續的小數相乘容易造成下溢出使乘積為0或者得不到正確答案。一種解決辦法就是對乘積取自然對數,將連乘變為連加,ln(AB)=lnA+lnB。
4.2 Laplace校准:
如果新特征出現,會導致類別的條件概率為0,最終出現0/0 未定義的情況 ;修改后的的表達式為:每個z=j的分子都加1,分母加k(類別的個數)。
5.實現和具體例子
垃圾郵件過濾:吳恩達的斯坦福公開課
6.適用場合
是否支持大規模數據:支持,並且有分布式實現
特征維度:可以很高
是否有 Online 算法:有(參考自)
特征處理:支持數值型,類別型類型