從零開始-Machine Learning學習筆記(24)-貝葉斯分類器
首先還是先取出周志華先生在《機器學習》貝葉斯分類器一章中對於貝葉斯決策論的定義:
貝葉斯決策論是概率框架下實施決策的基本方法。在分類任務中,在所有相關概率都已知的情況下,貝葉斯決策論考慮的是如何基於這些概率和誤判損失來選擇最優的標記。
基於最小化條件風險,我們可以得到最小化分類錯誤率的貝葉斯最優分類器:
根據上面的公式我們可以看出,要獲得最優的貝葉斯分類器,需要知道後驗概率P(c|x),但是在實際中,往往很難直接獲得。基於訓練集,我們通常有兩種策略:
判別式模型: 利用訓練集來建模,給定x,通過P(c|x)來預測c。顯然,我們常見的決策樹、BP神經網路、支援向量機和邏輯迴歸等都屬於此類範疇。
生成式模型: 單純從概率的角度出發,從訓練集中直接生成P(c|x),顯然根據貝葉斯定理,可以把P(c|x)進行轉化:
其中:
P(c)
:是先驗概率,表示為c類標記在訓練集中所佔的比例;
P(x)
: “證據”因子,(這裡我認為是樣本x出現的概率,如果訓練集沒有異常資料,即樣本特徵的屬性一樣,但是標記不一樣的話,那麼P(x)應該都是一樣的);
P(x|c)
:是樣本x對標記c的條件概率,或稱之為“似然”。
對與給定樣本x,證據因子P(x)就與類別標記無關,因此估計P(c|x)的問題就轉化為如何基於訓練集D來估計先驗概率P©和似然P(x|c)。其中,P(x|c)與x所有的屬性的聯合概率有關,所以直接用樣本出現的概率來估計會遇到嚴重的困難。
1. 朴樹貝葉斯分類器
因為P(x|c)是所有屬性上的聯合概率,很難直接從訓練集中估計得到(訓練集給出的樣例可能涵蓋不了所有的屬性組合)。為了避開這個障礙,樸素貝葉斯分類器採用了屬性條件獨立性假設:對於已知類別,假設所有屬性相互獨立,換言之,假設每個屬性獨立地對分類結果發生影響。基於屬性獨立假設有:
其中d為屬性數目(特徵),
表示x在第i個屬性(特徵)上的取值。所以此時的貝葉斯判定準則可以寫為:
其中,P(c)表示第c類樣本在訓練集樣本中所佔的比例。假設
為標記為c的樣本集合,那麼P©可表示為:
對於離散屬性: P(x_i|c)可表示為在樣本標記為c的集合中,在第i個屬性(特徵)上取值為
的樣本所佔的比例。用
樣本標記為c的集合中,在第i個屬性(特徵)上取值為
的樣本集合,則:
對於連續屬性: 一般考慮密度函式,一般假定其服從高斯分佈:
~
,其中
和
表示為第c類樣本集合中,在第i個屬性(特徵)上取值的均值和方差,於是:
【!!!但是】:如果某個屬性值(某個特徵對應的取值)在訓練集中從來沒有出現過,那麼計算
,就會導致連乘以式求得的概率值為0。這意味著即便在其他屬性上明顯是正樣本,但是由於這個屬性的原因,導致最後的預測結果為負樣本,這顯然是不合理的。
為了解決這個問題,常用拉普拉斯修正
,即對P( c )和
進下如下的修正: