一、引言
給定一個對象的集合,每一個對象用一個向量表示且屬於一個類別,我們的任務是:構造一個規則,使得對於一個未曾見過但不具有類別標記的對象,該規則能爲其確定類別。這類被稱爲“有監督分類”的問題非常普遍,相應的規則方法也已經很成熟了。
其中一個非常重要的方法就是樸素貝葉斯。樸素貝葉斯分類器是特徵條件獨立假設並基於貝葉斯定理的分類方法,它是一種傳統的分類方法,有着較深的基礎數學理論基礎,這個方法非常受重視是因爲:
- 它易於構造,模型參數的估計不需要任何複雜的迭代求解框架,非常適用於規模巨大的數據集;
- 它易於解釋,即便是不熟悉分類計數的用戶也能理解;
- 分類效果好,對於任何應用,它的分類效果即便不是最好的,也可能是最穩健的;
該方法的數學基礎是貝葉斯定理和貝葉斯公式。
貝葉斯定理:隨機事件A,B 的條件或邊緣概率的定理;
貝葉斯公式:用來描述兩個條件概率之間的關係,
P(A⋂B)=P(A)⋅P(B|A)=P(B)⋅P(A|B)
注:
邊緣概率:某個事件發生的概率與其他事件無關;
首先給出一些量的定義:
P(i|x) 表示一個測量對象爲x=(x1,x2,...,xp) 的對象屬於類別i 的概率;
P(x|i) 表述x 關於類別i 的條件分佈;
P(i) 爲不知道對象自身任何信息的情況下該對象屬於類別i 的概率(即類別i 的先驗概率);
P(x) 爲類別的混合分佈
很明顯,如果對P(i|x) 的估計能得到一個合適的分數,可以將之用於分類規則。
二、貝葉斯決策論
在所有相關概率都已知的情況下,貝葉斯決策論考慮如何基於這些概率和誤判損失來選擇最優的類別標記。
假設有N種可能的類別標記,即Y={c1,c2,...,cN},λij 是將一個真實標記爲cj 的樣本誤分類爲ci 所產生的損失。基於後驗概率P(ci|x) 可獲得樣本x 分類爲ci 所產生的期望損失,即在樣本x 上的“條件風險”(在決策論中將期望損失稱爲風險):
注:
決策論將“期望損失”稱爲“風險”;
R(ci|x)=∑j=1NλijP(cj|x)
我們的任務是
尋找一個判定準則h:χ→Y 以
最小化總體風險
R(h)=Ex[R(h(x))|x]
顯然,對每個樣本
x ,若h能最小化條件風險
R(h(x)|x) ,則總體風險
R(h) 也將被最小化。這就產生了貝葉斯判定準則:
爲最小化總體風險,只需在每個樣本上選擇那個使條件風險R(c|x) 最小的類別標記:
h∗(x)=argminc∈YR(c|x)
此時,
h∗ 稱爲貝葉斯最優分類器,與之對應的總體風險
R(h∗) 稱之爲貝葉斯風險,
1−R(h∗) 反映了分類器所能達到的最好性能,即通過機器學習所能產生的模型精度的理論上限。
若木表是最小化分類錯誤率,則
λij 可寫爲:
λij={01ifi=jotherwise
此時條件風險:
R(c|x)=1−P(c|x)
於是,最小化分類錯誤率的貝葉斯最優分類器爲:
h∗(x)=argmaxc∈YP(c|x)
對每個樣本
x ,
選擇能使後驗概率P(c|x) 最大的類別標記。
想要使用貝葉斯判定準則來最小化決策風險,首先要獲得後驗概率P(c|x),這通常難以直接獲得。從這個角度出發,機器學習所要實現的是基於有限的訓練樣本集儘可能準確地估計出後驗概率P(c|x) 。事實上,很多機器學習方法無須準確估計後驗概率就能準確進行分類。
大體來說,主要有兩種策略:1.給定x,通過直接建模P(c|x) 來預測c ,這屬於“判別式模型”;也可先對聯合概率分佈P(c,x) 建模,然後再獲得P(c|x) ,這屬於“生成式模型”。對於後者,必然考慮:
P(c|x)=P(c)P(x|c)P(x)
類先驗概率P(c) 對所有類別標記均相同,可通過各類
樣本出現的頻率進行估計。
類條件概率P(x|c) 亦稱之爲”似然”,由於涉及x所有屬性的聯合分佈,直接根據樣本出現的頻率進行估計將會遇到嚴重的困難。假設樣本的d 個屬性都是二值的,則樣本空間將有2d 中可能性,很多取值在訓練集中可能根本就沒有出現,直接使用頻率估計P(x|c) 顯然不可行,因爲“未被觀測到”與“出現概率爲零”是不同的。
注:
聯合概率P(AB) 或者P(A⋂B) :多元隨機變量分別滿足各自條件的概率
三、極大似然估計
概念理解:一般來說,時間A 發生的概率與某一未知的參數θ 有關,θ 取值不同,則事件A 發生的概率P(A|θ) 也不相同,當我們在一次試驗中事件A 發生了,則認爲此時的θ 值應是其一切可能取值中使得P(A|θ) 達到最大的那一個值,極大似然估計就是要找出這樣的值作爲參數θ的估計值,從而使得所選取的樣本在數據集中出現的可能性最大。
最大似然估計是常用的參數估計方法之一,即已知某個隨機樣本滿足某種概率分佈,但是具體的參數未知,參數估計就是通過若干次實驗通過其結果推測參數的大概值。
估計類條件概率的一種常用策略是:先假定類條件概率具有某種確定的概率分佈形式,再基於訓練數據集對概率分佈的參數進行估計。具體地,即關於類別c的類條件概率爲P(x|c) ,假設P(x|c) 具有確實的形式並且被參數向量θc 唯一確定,則我們的任務就是利用訓練集D 估計參數θc 。將P(x|c) 記爲P(x|θc) 。
事實上,概率模型的訓練過程就是參數估計的過程。統計學派認爲參數雖未知,但是客觀存在的固定值,因此可通過優化似然函數來確定參數值;貝葉斯學派認爲,參數也可能具有某種分佈,可假設參數服從一個先驗分佈,然後基於觀測到的數據來計算參數的後驗概率。極大似然估計屬於前者。
令Dc 表示訓練集D 中第c 類樣本組成的集合,假設這些樣本是獨立同分布的,則參數θc 對於數據集Dc 的似然:
注:
獨立同分布:在隨機過程中,任何時刻的取值均爲隨機變量,如果這些隨機變量服從同一分佈,且相互獨立,則這些變量是獨立同分布的。
P(Dc|θc)=∏x∈DcP(x|Dc)
對
θc 進行極大似然估計就是尋找能使最大化似然
P(Dc|θc) 的參數
θ^c 。
直觀上看,極大似然估計是試圖在θc 所有可能的取值中找到一個能使數據出現的“可能性”最大的值。
對以上的連乘操作易造成下溢,通常使用對數似然:
LL(θc)=logP(Dc|θc)=∑x∈DclogP(x|θc)
此時參數的最大化似然估計
θ^c 爲:
θ^c=argmaxθcLL(θc)
四、樸素貝葉斯分類器
基於貝葉斯公式估計後驗概率P(c|x) 的主要困難在於:類條件概率P(x|c) 是所有屬性上的聯合概率,難以從有限的數據集或者訓練樣本中直接估計而得。爲避開這個障礙,樸素貝葉斯分類器採用了“屬性條件獨立性假設”:對已知的類別,假設屬性相互獨立,即每個屬性獨立的對分類結果產生影響。
由屬性條件獨立性假設可得:
P(c|x)=P(c)P(x|c)P(x)=P(c)P(x)∏i=1dP(xi|c)
對於所有的類別來說,
P(x) 相同,因此:
hnb(x)=argmaxc∈YP(c)∏i=1dP(xi|c)
這就是樸素貝葉斯分類器的思想。
基於訓練數據集估計類先驗概率P(c) ,併爲每一屬性估計條件概率P(xi|c) 。
P(c)=|Dc||D|
如果屬性是離散的:
P(xi|c)=|Dc,xi||Dc|
如果屬性是連續的,可以考慮密度函數,假設
p(xi|c)∼N(μc,i,σ2c,i)
其中
μc,i 和
σ2c,i 分別是第
c 類樣本在第
i 個屬性上取值的均值和方差,則有:
p(xi|c)=12π−−√σc,iexp⎛⎝−(xi−μc,i)22σ2c,i⎞⎠
聲明:本文內容引自周志華老師《機器學習》