貝葉斯分類是一類分類算法的總稱剑梳,這類算法均以貝葉斯定理為基礎(chǔ),故統(tǒng)稱為貝葉斯分類起趾。而樸素樸素貝葉斯分類是貝葉斯分類中最簡單唉锌,也是常見的一種分類方法隅肥。這篇文章我盡可能用直白的話語總結(jié)一下我們學(xué)習(xí)會上講到的樸素貝葉斯分類算法,希望有利于他人理解袄简。
1分類問題綜述
對于分類問題腥放,其實誰都不會陌生,日常生活中我們每天都進(jìn)行著分類過程绿语。例如秃症,當(dāng)你看到一個人候址,你的腦子下意識判斷他是學(xué)生還是社會上的人;你可能經(jīng)常會走在路上對身旁的朋友說“這個人一看就很有錢”之類的話种柑,其實這就是一種分類操作岗仑。
分類算法的內(nèi)容是要求給定特征,讓我們得出類別聚请,這也是所有分類問題的關(guān)鍵荠雕。那么如何由指定特征,得到我們最終的類別驶赏,也是我們下面要講的炸卑,每一個不同的分類算法,對應(yīng)著不同的核心思想煤傍。
本篇文章盖文,我會用一個具體實例,對樸素貝葉斯算法幾乎所有的重要知識點進(jìn)行講解患久。
2樸素貝葉斯分類
那么既然是樸素貝葉斯分類算法,它的核心算法又是什么呢浑槽?
是下面這個貝葉斯公式:
換個表達(dá)形式就會明朗很多蒋失,如下:
我們最終求的p(類別|特征)即可!就相當(dāng)于完成了我們的任務(wù)桐玻。
3例題分析
下面我先給出例子問題篙挽。
給定數(shù)據(jù)如下:
現(xiàn)在給我們的問題是,如果一對男女朋友镊靴,男生想女生求婚铣卡,男生的四個特點分別是不帥,性格不好偏竟,身高矮煮落,不上進(jìn),請你判斷一下女生是嫁還是不嫁踊谋?
這是一個典型的分類問題蝉仇,轉(zhuǎn)為數(shù)學(xué)問題就是比較p(嫁|(不帥、性格不好殖蚕、身高矮轿衔、不上進(jìn)))與p(不嫁|(不帥、性格不好睦疫、身高矮害驹、不上進(jìn)))的概率,誰的概率大蛤育,我就能給出嫁或者不嫁的答案宛官!
這里我們聯(lián)系到樸素貝葉斯公式:
我們需要求p(嫁|(不帥葫松、性格不好、身高矮摘刑、不上進(jìn)),這是我們不知道的进宝,但是通過樸素貝葉斯公式可以轉(zhuǎn)化為好求的三個量.
p(不帥、性格不好枷恕、身高矮党晋、不上進(jìn)|嫁)、p(不帥徐块、性格不好未玻、身高矮、不上進(jìn))胡控、p(嫁)(至于為什么能求扳剿,后面會講,那么就太好了昼激,將待求的量轉(zhuǎn)化為其它可求的值庇绽,這就相當(dāng)于解決了我們的問題!)
4樸素貝葉斯算法的樸素一詞解釋
那么這三個量是如何求得橙困?
是根據(jù)已知訓(xùn)練數(shù)據(jù)統(tǒng)計得來瞧掺,下面詳細(xì)給出該例子的求解過程。
回憶一下我們要求的公式如下:
那么我只要求得p(不帥凡傅、性格不好辟狈、身高矮、不上進(jìn)|嫁)夏跷、p(不帥哼转、性格不好、身高矮槽华、不上進(jìn))壹蔓、p(嫁)即可,好的猫态,下面我分別求出這幾個概率庶溶,最后一比岔留,就得到最終結(jié)果捌肴。
p(不帥、性格不好叼架、身高矮匆光、不上進(jìn)|嫁) = p(不帥|嫁)p(性格不好|嫁)p(身高矮|嫁)*p(不上進(jìn)|嫁)套像,那么我就要分別統(tǒng)計后面幾個概率,也就得到了左邊的概率终息!
等等夺巩,為什么這個成立呢贞让?學(xué)過概率論的同學(xué)可能有感覺了,這個等式成立的條件需要特征之間相互獨立吧柳譬!
對的喳张!這也就是為什么樸素貝葉斯分類有樸素一詞的來源,樸素貝葉斯算法是假設(shè)各個特征之間相互獨立美澳,那么這個等式就成立了销部!
但是為什么需要假設(shè)特征之間相互獨立呢?
1制跟、我們這么想舅桩,假如沒有這個假設(shè),那么我們對右邊這些概率的估計其實是不可做的雨膨,這么說擂涛,我們這個例子有4個特征,其中帥包括{帥聊记,不帥}撒妈,性格包括{不好,好排监,爆好}狰右,身高包括{高,矮社露,中}挟阻,上進(jìn)包括{不上進(jìn)琼娘,上進(jìn)}峭弟,那么四個特征的聯(lián)合概率分布總共是4維空間,總個數(shù)為233*2=36個脱拼。
36個瞒瘸,計算機(jī)掃描統(tǒng)計還可以,但是現(xiàn)實生活中熄浓,往往有非常多的特征情臭,每一個特征的取值也是非常之多,那么通過統(tǒng)計來估計后面概率的值赌蔑,變得幾乎不可做俯在,這也是為什么需要假設(shè)特征之間獨立的原因。
2娃惯、假如我們沒有假設(shè)特征之間相互獨立跷乐,那么我們統(tǒng)計的時候,就需要在整個特征空間中去找趾浅,比如統(tǒng)計p(不帥愕提、性格不好馒稍、身高矮、不上進(jìn)|嫁),
我們就需要在嫁的條件下浅侨,去找四種特征全滿足分別是不帥纽谒,性格不好,身高矮如输,不上進(jìn)的人的個數(shù)鼓黔,這樣的話,由于數(shù)據(jù)的稀疏性挨决,很容易統(tǒng)計到0的情況请祖。 這樣是不合適的。
根據(jù)上面?zhèn)z個原因脖祈,樸素貝葉斯法對條件概率分布做了條件獨立性的假設(shè)肆捕,由于這是一個較強(qiáng)的假設(shè),樸素貝葉斯也由此得名盖高!這一假設(shè)使得樸素貝葉斯法變得簡單慎陵,但有時會犧牲一定的分類準(zhǔn)確率。
好的喻奥,上面我解釋了為什么可以拆成分開連乘形式席纽。那么下面我們就開始求解!
我們將上面公式整理一下如下:
下面我將一個一個的進(jìn)行統(tǒng)計計算(在數(shù)據(jù)量很大的時候撞蚕,根據(jù)中心極限定理润梯,頻率是等于概率的,這里只是一個例子甥厦,所以我就進(jìn)行統(tǒng)計即可)纺铭。
p(嫁)=?
首先我們整理訓(xùn)練數(shù)據(jù)中刀疙,嫁的樣本數(shù)如下:
則 p(嫁) = 6/12(總樣本數(shù)) = 1/2
統(tǒng)計滿足樣本數(shù)如下:
則p(不帥|嫁) = 3/6 = 1/2
則p(性格不好|嫁)= 1/6
則p(矮|嫁) = 1/6
則p(不上進(jìn)|嫁) = 1/6
下面開始求分母舶赔,p(不帥),p(性格不好)谦秧,p(矮)竟纳,p(不上進(jìn))
統(tǒng)計樣本如下:
不帥占4個,那么p(不帥) = 4/12 = 1/3
性格不好占4個疚鲤,那么p(性格不好) = 4/12 = 1/3
身高矮占7個锥累,那么p(身高矮) = 7/12
不上進(jìn)占4個,那么p(不上進(jìn)) = 4/12 = 1/3
到這里集歇,要求p(不帥桶略、性格不好、身高矮、不上進(jìn)|嫁)的所需項全部求出來了删性,下面我?guī)脒M(jìn)去即可亏娜,
= (1/21/61/61/61/2)/(1/31/37/12*1/3)
= 4/7
下面我們根據(jù)同樣的方法來求p(不嫁|不帥,性格不好蹬挺,身高矮维贺,不上進(jìn)),完全一樣的做法巴帮,為了方便理解溯泣,我這里也走一遍幫助理解。首先公式如下:
下面我也一個一個來進(jìn)行統(tǒng)計計算榕茧,這里與上面公式中垃沦,分母是一樣的,于是我們分母不需要重新統(tǒng)計計算用押!
p(不嫁)=肢簿?根據(jù)統(tǒng)計計算如下(紅色為滿足條件):
則p(不嫁)=6/12 = 1/2
統(tǒng)計滿足條件的樣本如下
則p(不帥|不嫁) = 1/6
則p(性格不好|不嫁) =3/6 = 1/2
則p(矮|不嫁) = 6/6 = 1
則p(不上進(jìn)|不嫁) = 3/6 = 1/2
那么根據(jù)公式:
= ((1/61/211/2)1/2)/(1/31/37/12*1/3)
=27/28
很顯然27/28 > 4/7
(分母相同也可之比較分子)
于是有p (不嫁|不帥、性格不好蜻拨、身高矮池充、不上進(jìn))>p (嫁|不帥、性格不好缎讼、身高矮收夸、不上進(jìn))
所以我們根據(jù)樸素貝葉斯算法可以給這個女生答案,是不嫁Q浮N韵А!夹纫!
有時我們的可能會出現(xiàn)0咽瓷,會大大影響整個概率走向
問題:從上面的例子我們得到娛樂概率為0,這是不合理的捷凄,如果詞頻列表里面
有很多出現(xiàn)次數(shù)都為0忱详,很可能計算結(jié)果都為零
5樸素貝葉斯分類的優(yōu)缺點
優(yōu)點:
(1) 算法邏輯簡單,易于實現(xiàn)(算法思路很簡單围来,只要使用貝葉斯公式轉(zhuǎn)化醫(yī)學(xué)即可6宓印)
(2)分類過程中時空開銷小(假設(shè)特征相互獨立监透,只會涉及到二維存儲)
缺點:
理論上桶错,樸素貝葉斯模型與其他分類方法相比具有最小的誤差率。但是實際上并非總是如此胀蛮,這是因為樸素貝葉斯模型假設(shè)屬性之間相互獨立院刁,這個假設(shè)在實際應(yīng)用中往往是不成立的,在屬性個數(shù)比較多或者屬性之間相關(guān)性較大時粪狼,分類效果不好退腥。
而在屬性相關(guān)性較小時任岸,樸素貝葉斯性能最為良好。對于這一點狡刘,有半樸素貝葉斯之類的算法通過考慮部分關(guān)聯(lián)性適度改進(jìn)享潜。
整個例子詳細(xì)的講解了樸素貝葉斯算法的分類過程,希望對大家的理解有幫助~