機器學習之貝葉斯算法

在瞭解樸素貝葉斯算法之前,我們需要先了解條件概率及貝葉斯定理,還有貝葉斯本人,就是下面的大牛,作為業務數學家,他的成就不亞於大多數的數學家

機器學習之貝葉斯算法

條件概率與貝葉斯定理

先驗概率:事件B發生之前,我們對事件A的發生有一個基本的概率判斷,稱為A的先驗概率,用P(A)表示

條件概率:又稱後驗概率,事件A在另外一個事件B已經發生條件下的發生概率。條件概率表示為P(A|B),表示在B條件下A發生的概率,稱為A的後驗概率

所以貝葉斯定理最簡單的公式就是:P(A|B)= P(B|A) P(A)/P(B)

已知某種疾病的發病率是0.001,即1000人中會有1個人得病。現有一種試劑可以檢驗患者是否得病,它的準確率是0.99,即在患者確實得病的情況下,它有99%的可能呈現陽性。它的誤報率是5%,即在患者沒有得病的情況下,它有5%的可能呈現陽性。現有一個病人的檢驗結果為陽性,請問他確實得病的可能性有多大?

假定A事件表示得病,那麼P(A)為0.001。這就是"先驗概率",即沒有做試驗之前,我們預計的發病率。再假定B事件表示陽性,那麼要計算的就是P(A|B)。這就是"後驗概率",即做了試驗以後,對發病率的估計。

機器學習之貝葉斯算法

使用全概率公式,則可以表示:

機器學習之貝葉斯算法

結果可得:

機器學習之貝葉斯算法

P(A|B)約等於0.019。也就是說,即使檢驗呈現陽性,病人得病的概率,也只是從0.1%增加到了2%左右。這就是所謂的"假陽性",即陽性結果完全不足以說明病人得病。

為什麼會這樣?為什麼這種檢驗的準確率高達99%,但是可信度卻不到2%?這與我們日常感覺相悖,其實是與它的誤報率太高有關。

樸素貝葉斯

樸素貝葉斯(Naive Bayesian)是基於貝葉斯定理和特徵條件獨立假設的分類方法,它通過特徵計算分類的概率,選取概率大的情況進行分類,因此它是基於概率論的一種機器學習分類方法。因為分類的目標是確定的,所以屬於監督學習

在數據服從條件獨立假設的基礎上,使用貝葉斯定理構建的算法,在文本領域有廣泛的應用

貝葉斯定理:

機器學習之貝葉斯算法

給定一個類別 y 和一個從 X1 到 Xn 的相關的特徵向量, 貝葉斯定理闡述了以下關係:

機器學習之貝葉斯算法

使用簡單(naive)的假設-每對特徵之間都相互獨立:

機器學習之貝葉斯算法

這個關係式可以簡化為

機器學習之貝葉斯算法

由於在給定的輸入中

機器學習之貝葉斯算法

是一個常量,我們使用下面的分類規則:

機器學習之貝葉斯算法

我們可以使用最大後驗概率來估計 P(y)和 P(Xi|y)前者是訓練集中類別 的相對頻率

各種各樣的的樸素貝葉斯分類器的差異大部分來自於處理P(Xi|y) 分佈時的所做的假設不同。

另一方面,儘管樸素貝葉斯被認為是一種相當不錯的分類器,但卻不是好的估計器,所以不能太過於重視輸出的概率。

優缺點及注意事項:

樸素貝葉斯算法實現簡單,學習和預測的效率較高

對缺失數據不敏感,在小規模數據集上有較好的效果。

能夠避免誤差點和離群點對結果的影響,因為對每個檢測樣本的歸類,都是根據全部訓練集的信息得到的。

可以處理多類別的分類問題

對於類別類的輸入特徵變量,效果非常好。對於數值型變量特徵,我們是默認它符合正態分佈的,否則要變換成正態分佈的數據。

使用先驗數據去做預測分類,會存在一定的誤差

注意事項:

如果測試數據特徵出現頻率為0的數據,就用平滑技術"拉普拉斯變換"來進行預測

刪除相關聯的特徵,可能造成過擬合

貝葉斯模型常用的場景:文本分類/垃圾過濾/情感分析/推薦系統

三種常見的模型

1,高斯模型

當特徵是連續變量的時候,運用多項式模型就會導致很多P(xi|yk)=0(不做平滑的情況下),此時即使做平滑,所得到的條件概率也難以描述真實情況。所以處理連續的特徵變量,應該採用高斯模型。

2,多項式模型

當特徵是離散的時候,使用多項式模型,分佈參數由每類y的

機器學習之貝葉斯算法

向量決定,式中n是特徵的數量(對於文本分類,是詞彙量的大小)是樣本中屬於類 y 中特徵i概率P(Xi|y)

參數 θy 使用平滑過的最大似然估計法來估計,即相對頻率計數:

機器學習之貝葉斯算法

式中

機器學習之貝葉斯算法

是 訓練集 T 中 特徵 i 在類 y 中出現的次數,

機器學習之貝葉斯算法

是類 y 中出現所有特徵的計數總和。

先驗平滑因子 α >= 0 應用於在學習樣本中沒有出現的特徵,以防在將來的計算中出現0概率輸出。 把 α=1 被稱為拉普拉斯平滑,而 α<1 被稱為利德斯通。

如果不做平滑,當某一維特徵的值

xi沒在訓練樣本中出現過時,會導致P(xi|yk)=0,從而導致後驗概率為0。加上平滑就可以克服這個問題。

3,伯努利模型

與多項式模型一樣,伯努利模型適用於離散特徵的情況,所不同的是,伯努利模型中每個特徵的取值只能是1和0(以文本分類為例,某個單詞在文檔中出現過,則其特徵值為1,否則為0)

努利樸素貝葉斯的決策規則基於

機器學習之貝葉斯算法

與多項分佈樸素貝葉斯的規則不同,伯努利樸素貝葉斯明確地懲罰類 y 中沒有出現作為預測因子的特徵 i ,而多項分佈分佈樸素貝葉斯只是簡單地忽略沒出現的特徵。

在文本分類的例子中,詞頻向量(word occurrence vectors)(而非詞數向量(word count vectors))可能用於訓練和用於這個分類器。 BernoulliNB 可能在一些數據集上可能表現得更好,特別是那些更短的文檔。如果時間允許,建議對兩個模型都進行評估。


分享到:


相關文章: