一、算法介紹
朴素貝葉斯法,簡稱NB算法,是貝葉斯決策理論的一部分,是基於貝葉斯定理與特征條件獨立假設的分類方法:
首先理解兩個概念:
· 先驗概率是指根據以往經驗和分析得到的概率,它往往作為“由因求果”問題中的“因”出現;
· 后驗概率是指在得到“結果”的信息后重新修正的概率,是“執果尋因”問題中的“因” 。
1 貝葉斯定理
貝葉斯理論是以18世紀的一位神學家托馬斯貝葉斯(Thomas Bayes)命名。通常,事件A在事件B(發生)的條件下的概率,與事件B在事件A(發生)的條件下的概率是不一樣的;然而,這兩者是有確定的關系的,貝葉斯定理就是這種關系的陳述。貝葉斯公式:
或者可以一般地表示為:
以郵件過濾為例:
·Pr(S) :垃圾郵件的概率;
·Pr(H) :正常郵件的概率;
·Pr(W|S) :垃圾郵件中,詞匯W的概率;
·Pr(W|H) :正常郵件中,詞匯W的概率;
·Pr(S|W) :郵件為垃圾郵件(spam)的概率,在已知詞匯W的條件下。
2 特征條件獨立
給定樣本的屬性之間是相互獨立的,比如:以判定郵件是否為垃圾郵件為例,其中判定的方法為根據郵件中出現的詞語判定是否為垃圾郵件;給定的一封樣本郵件,特征條件獨立就是指郵件中不同的詞出現的概率相互之間是不受影響的,即一個詞的出現不會影響另一個詞的出現。(雖然此條件往往不成立,但是NB算法依然取得了較好的分類效果)。
3 基本定義
首先基於特征條件獨立,假設學習輸入或輸出的聯合概率分布;然后基於此模型,對給定的待分類的樣本,求解在
出現的條件下各個類別
出現的概率,哪個
的概率最大,就把它歸到哪個類別。
·設為一個待分類項,每個a為x的一個特征屬性。
·有類別集合。
·計算。
·如果,則
。
計算第3步中的各個條件概率時可以這么做:
·找到一個已知分類的待分類項集合,這個集合叫做訓練樣本集。
·統計得到在各類別下各個特征屬性的條件概率估計。即:
·如果各個特征屬性是條件獨立的,則根據貝葉斯定理有如下推導:
因為分母對於所有類別為常數,因此只要將分子最大化即可。又因為各特征屬性是條件獨立的,所以有:
這些過程可用下圖概括:
4 優缺點
朴素貝葉斯的主要優點有:
·朴素貝葉斯模型發源於古典數學理論,有穩定的分類效率。
·對小規模的數據表現很好,能個處理多分類任務,適合增量式訓練。
·對缺失數據不太敏感,算法比較簡單,常用於文本分類。
朴素貝葉斯的主要缺點有:
·理論上朴素貝葉斯模型與其他分類方法相比具有最小的誤差率。但是實際上並非總是如此。因為朴素貝葉斯模型給定輸出類別的情況下,假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,在屬性個數比較多或者屬性之間相關性較大時,分類效果並不好。而在屬性相關性較小時,朴素貝葉斯性能最為良好。對於這一點,有半朴素貝葉斯之類的算法通過考慮部分關聯性適度改進。
·需要知道先驗概率,且先驗概率很多時候取決於假設,假設的模型可以有很多種,因此在某些時候會由於假設的先驗模型的原因導致預測效果不佳。
·由於是通過先驗和數據來決定后驗的概率從而決定分類,所以分類決策存在一定的錯誤率。
·對輸入數據的表達形式很敏感。