分類問題
已知m個樣本 票编,x是特征變量褪储,y是對應(yīng)的類別。
要求一個模型函數(shù)h栏妖,對于新的樣本 乱豆,能夠盡量準(zhǔn)確的預(yù)測出 。
概率角度
很多機器學(xué)習(xí)算法從誤差角度來構(gòu)建模型函數(shù)h吊趾,也就是先假設(shè)一個h宛裕,然后定義一個h(x)與y的誤差,通過逐步減少h(x)與y的誤差來獲得一個擬合的模型h论泛。
現(xiàn)在我們從概率的角度來考慮一下揩尸。
假設(shè)y有m個類別,即 屁奏,
對于樣本 岩榆,如果能計算出每個類別的條件概率 ,那么可以認(rèn)為概率最大的那個類別就是 所屬的類別坟瓢。(關(guān)于條件概率和貝葉斯定理請參考 理解貝葉斯定理)勇边。即
樸素貝葉斯分類器
已知m個樣本 ,
x是n維特征變量折联,即 粒褒,
y是對應(yīng)的類別,設(shè)有K個類別诚镰,即 奕坟,
對任一給定的x,我們需要分別計算出x屬于各分類的概率 清笨,其中有最大值的月杉,x即屬于該分類,即樣本x屬于分類
現(xiàn)在需要計算 抠艾,應(yīng)用貝葉斯定理:
這里 是一個條件聯(lián)合概率苛萎,意思是在分類 中,特征 取一組特定值(也就是需要預(yù)測的樣本x的各特征的值)的概率检号。這個概率不容易計算腌歉,為了方便,于是樸素貝葉斯(Naive Bayes) 隆重登場谨敛。在這里樸素的意思是究履,假定 x 的各特征 是條件獨立的。(參考維基百科 - 條件獨立)脸狸。因此
這個轉(zhuǎn)換其實就是 獨立變量的聯(lián)合分布 = 各變量先驗分布的乘積(參考 維基百科 - 聯(lián)合分布)最仑,只不過這里是條件概率藐俺,但是因為變換前后都有同樣的條件 ,從樣本空間 的角度看泥彤,其實就是聯(lián)合分布轉(zhuǎn)換成先驗分布的乘積欲芹。(對樣本空間的理解請參考 理解貝葉斯定理)。
將(5)帶回(4)得
對任一給定的樣本x的值是確定的吟吝,且x不依賴于C菱父,所以P(x)可以看作常量。所以可以忽略 剑逃。
這就是樸素貝葉斯分類的模型函數(shù)浙宜。
參數(shù)估計
上述公式中主要有兩項,分別考察一下如何計算蛹磺。
參數(shù)1:
上式中 比較容易計算粟瞬,用頻率來估算概率,統(tǒng)計m個樣本中屬于 的樣本的頻率即可萤捆。設(shè)m個樣本中有 個樣本的類別是 裙品,則
參數(shù)2:
對的計算需要事先假設(shè)樣本特征的數(shù)據(jù)分布情況。對特征分布的假設(shè)俗或,我們稱之為事件模型市怎,通常會采用以下三種假設(shè)。
-
多項式分布
如果特征是離散值辛慰,可以假設(shè)它符合 多項式分布区匠。可以統(tǒng)計的某個特征在樣本中的頻率來估算其概率昆雀。
假設(shè) 特征 有 個可能的取值(比如天氣有陰辱志、晴蝠筑、雨三種狀態(tài)狞膘,則 ),并且在n個樣本中什乙,類別為 挽封、特征 取值為 s 的樣本有 個。則
有時候樣本中某個特征的特定取值的樣本數(shù) 臣镣,這將導(dǎo)致整個 辅愿,嚴(yán)重扭曲了該特征的概率值。因此忆某,通车愦可以采用拉普拉斯平滑來避免這種情況發(fā)生。即
通常取
將(8)和(10)帶入貝葉斯分類器(7)弃舒,得到
用一個粗略的示意圖來理解一下特征為離散值時癞埠,條件概率如何根據(jù)樣本集來進行估算:
圖中表示整個樣本空間状原,有兩個類別
舉例:根據(jù)天氣情況決定是否打網(wǎng)球
本案例來自 樸素貝葉斯分類器
上面表格是某同學(xué)在不同天氣情況下的打網(wǎng)球決策數(shù)據(jù)饲宿。
假設(shè)今天天氣狀況是:Outlook=sunny, Temperature=cool,Humidity=high,Wind=strong,該同學(xué)是否會去打網(wǎng)球呢胆描?
這里的幾個特征瘫想,天氣、溫度昌讲、濕度国夜、風(fēng)速都是離散型變量,適合采用上面的多項式貝葉斯分類方法短绸。將上面的公式寫在這里便于查看车吹。
我們需要計算 兩種情況下, 的估算概率醋闭。
統(tǒng)計上表中各種情況下的樣本數(shù)量可知:
總樣本數(shù) m=14
打球(k=yes)的樣本數(shù) = 9
不打球(k=no)的樣本數(shù) = 5
天氣的取值 (Sunny/Overcast/Rain)
晴天打球(k=yes,j=Outlook,s=sunny)的樣本數(shù)
晴天不打球(k=no,j=Outlook,s=sunny)的樣本數(shù)
溫度的取值 (Hot/Mild/Cool)
冷天打球(k=yes,j=Temperature,s=cool)的樣本數(shù)
冷天不打球(k=no,j=Temperature,s=cool)的樣本數(shù)
濕度的取值 (High/Normal)
潮濕天打球(k=yes,j=Humidity,s=high)的樣本數(shù)
潮濕天不打球(k=no,j=Humidity,s=high)的樣本數(shù)
風(fēng)力的取值 (Strong/Weak)
大風(fēng)天打球(k=yes,j=Wind,s=strong)的樣本數(shù)
大風(fēng)天不打球(k=no,j=Wind,s=strong)的樣本數(shù)
將上述數(shù)據(jù)代入公式(11)窄驹,對于樣本 ,打球(k=yes)的概率
不打球(k=nos)的概率
這里 0.01822 > 0.007084证逻,所以該同學(xué)可能不會去打球乐埠。經(jīng)過歸一化,
不打球的概率 = 0.01822 / (0.01822 + 0.007084) = 72%
(注:這里計算結(jié)果與原案例中的數(shù)值不同囚企,因為這里有做拉普拉斯平滑丈咐,原案例中沒有。本案例中其實沒有出現(xiàn)特定特征的樣本數(shù)為0的情況龙宏,可以不用做拉普拉斯平滑棵逊,不過這里是按照公式寫下來的,就按公式計算了)
-
伯努利分布
如果特征是稀疏二項離散值银酗,可以假設(shè)它符合 伯努利分布辆影。上面打網(wǎng)球的案例中掩浙,濕度取值是 {high,normal},風(fēng)力取值是 {strong,weak}秸歧,這兩個特征都是二項離散值厨姚。
伯努利分布只有兩種可能的取值,我們將其編碼為 {0,1}键菱,則
另外注意到伯努利分布其實是多項式分布的特例谬墙,所以我們可以用上面公式(12)計算,也可以用之前多項式分布公式(11)計算经备。
垃圾郵件分類等涉及文本的任務(wù)中可以采用伯努利分布拭抬,比如構(gòu)造一個5000個不同單詞的向量作為輸入特征x,對于一段文本侵蒙,其中有出現(xiàn)的單詞造虎,在x中對應(yīng)單詞的位置設(shè)為1,其它位置為0纷闺,這樣x中的每個特征(單詞)的取值為1或0算凿,符合伯努利分布。
-
高斯分布
如果特征是連續(xù)變量犁功,可以假設(shè)它符合 高斯分布(正態(tài)分布)氓轰。準(zhǔn)確點說,是假設(shè)每個類別 下的 符合高斯分布浸卦。這樣署鸡,我們可以通過高斯分布的概率密度函數(shù)來計算樣本中 某個特定值的條件概率 。高斯分布的概率密度函數(shù)為:
其中 是均值限嫌,是方差靴庆。
假設(shè)在類別 中,特征 的均值為 怒医,方差為 (這兩項可以通過樣本數(shù)據(jù)統(tǒng)計出來)炉抒。則
案例請參考 維基百科 - 案例 - 性別分類
處理連續(xù)數(shù)值問題的另一種常用的技術(shù)是通過離散化連續(xù)數(shù)值的方法。通常裆熙,當(dāng)訓(xùn)練樣本數(shù)量較少或者是精確的分布已知時端礼,通過概率分布的方法是一種更好的選擇禽笑。
而在大量樣本的情形下離散化的方法表現(xiàn)更優(yōu)入录,因為大量的樣本可以學(xué)習(xí)到數(shù)據(jù)的實際分布,而不用“樸素”的假設(shè)其分布佳镜。典型情況下很多任務(wù)都會提供大量的樣本僚稿,所以這時選擇離散化方法會比概率分布估計的方法更好。
題外話
順便說一句蟀伸,每次看到樸素這個詞蚀同,我就仿佛看到貝葉斯穿著一身打滿補丁衣服的樣子缅刽。而naive意思是缺乏經(jīng)驗的;幼稚的蠢络;無知的衰猛;輕信的。從公式推導(dǎo)過程來看刹孔,樸素貝葉斯分類器采用了一些簡化條件的假設(shè)啡省,比如假設(shè) x 的各特征 是條件獨立的,假設(shè)樣本特征數(shù)據(jù)符合多項式分布髓霞、伯努利分布卦睹、高斯分布等,這些假設(shè)都可能不完全符合實際情況方库,因為對險惡的現(xiàn)實世界的無知從而采用了一些天真的假設(shè)结序。
不過,樸素還有一層含義是專一纵潦、純粹徐鹤,在這個意義上,貝葉斯分類也算大道至簡邀层,大智若愚了凳干。
優(yōu)缺點
樸素貝葉斯的主要優(yōu)點有:
1)算法簡單,有穩(wěn)定的分類效率被济。
2)對小規(guī)模的數(shù)據(jù)表現(xiàn)很好救赐,能個處理多分類任務(wù),適合增量式訓(xùn)練只磷,尤其是數(shù)據(jù)量超出內(nèi)存時经磅,我們可以一批批的去增量訓(xùn)練。
3)對缺失數(shù)據(jù)不太敏感钮追。
樸素貝葉斯的主要缺點有:
1)“樸素”的假設(shè)如果與實際情況不符预厌,會影響模型效果。
2)輸入特征數(shù)據(jù)的表現(xiàn)形式元媚,比如是連續(xù)特征轧叽,離散特征還是二元特征,會影響概率計算和模型的分類效果刊棕。
參考
樸素貝葉斯算法原理小結(jié)
樸素貝葉斯分類器
維基百科 - Naive Bayes classifier
理解貝葉斯定理