分類算法之樸素貝葉斯(NaiveBayes)

我個人認為,在數(shù)據(jù)挖掘領(lǐng)域裹刮,分類算法是最為重要音榜。它根據(jù)以往的數(shù)據(jù)來對新的數(shù)據(jù)做預(yù)測。垃圾郵件判斷捧弃,潛在用戶挖掘等都會用到分類算法赠叼。今天把總結(jié)樸素貝葉斯算法的學(xué)習(xí)心得。

naive

#Bayes是誰#
Thomas Bayes违霞,英國數(shù)學(xué)家嘴办。約1701年出生于倫敦,做過神甫买鸽。1742年成為英國皇家學(xué)會會員涧郊。1761年4月7日逝世。貝葉斯在數(shù)學(xué)方面主要研究概率論眼五。他首先將歸納推理法用于概率論基礎(chǔ)理論妆艘,并創(chuàng)立了貝葉斯統(tǒng)計理論,對于統(tǒng)計決策函數(shù)看幼、統(tǒng)計推斷批旺、統(tǒng)計的估算等做出了貢獻。

#Bayes定理#
通俗來說就是:****
已知事件B的發(fā)生概率P(B)
已知在事件B已經(jīng)發(fā)生的情況下诵姜,事件A發(fā)生的概率P(A|B)
則可根據(jù)Bayes定理汽煮,計算事件A發(fā)生的條件下,事件B發(fā)生的概率P(B|A)。
計算方法為:
P(B|A)=P(A|B)× P(B)/ P(A)

#NaiveBayes分類算法實例#
門診部一共就診了6位患者暇赤,情況如下:

case

這時心例,來了第七位患者,一位“打噴嚏的工人”翎卓,請推斷他得了啥病契邀。

這就是一個分類問題“诩模現(xiàn)狀把所有患者分成了三類“感冒”“過敏”“腦震蕩”失暴,我們的目的是把“打噴嚏的工人”分到這三類中的一類中。具體做法為:根據(jù)Bayes定理微饥,計算這個“打噴嚏的工人”患三種疾病的概率逗扒。

P(感冒|打噴嚏&工人)
= P(打噴嚏&工人|感冒)×P(感冒) / P(打噴嚏&工人)
= P(打噴嚏|感冒)× P(工人|感冒)× P(感冒) / P(打噴嚏)× P(工人)
= (2/3 × 1/3 × 1/2)/ (1/2 × 1/3)
= 66.7%

解釋:

  • '&'項可以分成兩個,是因為“癥狀”變量和“職業(yè)”變量是相互獨立的欠橘,沒什么聯(lián)系
  • 感冒的有3個矩肩,其中打噴嚏的2個,所以P(打噴嚏|感冒)=2/3
  • 感冒的有3個肃续,其中工人1個黍檩,所以P(工人|感冒)=1/3
  • 一共六個人,感冒3個始锚,所以P(感冒)=1/2
  • 一共六個人刽酱,打噴嚏的3個,所以P(打噴嚏)=1/2
  • 一共六個人瞧捌,其中工人2個棵里,所以P(工人)=1/3

按照這個方法,計算“打噴嚏的工人”另外兩種疾病的概率姐呐;

P(過敏|打噴嚏&工人)
= P(打噴嚏&工人|過敏)×P(過敏) / P(打噴嚏&工人)
= P(打噴嚏|過敏)× P(工人|過敏)× P(過敏) / P(打噴嚏)× P(工人)
= (1 × 0 × 1/6)/ (1/2 × 1/3)
= 0%
P(腦震蕩|打噴嚏&工人)
= P(打噴嚏&工人|腦震蕩)×P(腦震蕩) / P(打噴嚏&工人)
= P(打噴嚏|腦震蕩)× P(工人|腦震蕩)× P(腦震蕩) / P(打噴嚏)× P(工人)
= (0 × 1/2 × 1/3)/ (1/2 × 1/3)
= 0%

可見殿怜,“打噴嚏的工人”患感冒概率66.7%,初步判斷應(yīng)該是感冒曙砂。但是一般的分類器都要根據(jù)具體業(yè)務(wù)設(shè)置閾值头谜,對于人命關(guān)天的事,最好嚴格一些鸠澈,比如95%以上才做出判斷柱告,那么這里最好的答案應(yīng)該是“機器無法判斷,建議去讓醫(yī)生看看”款侵。

#補充說明#

  • 算法叫做樸素貝葉斯(NaiveBayes)末荐,是因為算法是在太簡單了
  • ‘&’能分開兩個概率相乘是因為變量的獨立性,如果不獨立的話新锈,這樣計算會有誤差
  • 分母項 P(打噴嚏)× P(工人)在每次計算中都一樣甲脏,可以只互相比較分子計算的結(jié)果作出判斷
  • 例子中最初的6個病人的數(shù)據(jù)叫做訓(xùn)練集

#訓(xùn)練集樣本較小情況下的概率調(diào)整#
P(打噴嚏|過敏)和P(工人|過敏)分別為1,0,實際中不可能是這樣的块请,因為沒有什么是一定不發(fā)生娜氏,也沒有什么100%發(fā)生。出現(xiàn)這種情況是因為我們的樣本太少墩新,如果樣本足夠多贸弥,概率會相對靠譜。
在起步階段海渊,樣本就是很少绵疲,為了避免0,1這種極端概率臣疑,需要人為做一些數(shù)學(xué)變換盔憨。
比如,對過敏來說讯沈,每個癥狀的初始概率都為50%郁岩,當來了一個過敏病人,如果出現(xiàn)打噴嚏缺狠,那么P(打噴嚏|過敏)的概率就提升一點點问慎,反之如果不打噴嚏,則P(打噴嚏|過敏)的概率就下降一點點挤茄。
這樣使得每一個概率都變得在(0如叼,1)之間平滑變化,對其他的變量也這樣處理驮樊。
在《Programming Collective Intelligence》這本書中給出了這個變換的公式薇正,我套用到過敏來說就是:

P(打噴嚏|過敏)調(diào)整 =(1×0.5 + 打噴嚏數(shù) × P(打噴嚏|過敏)) / (1+打噴嚏數(shù))
所以調(diào)整后的概率為:
P(打噴嚏|過敏)調(diào)整 = (0.5 + 3 ×1 )/(1+3 )=87.5%
P(工人|過敏)調(diào)整 = (0.5 + 2 ×0)/ (1+2)=16.7%

所以,在上例中計算第二種疾病的時候囚衔,如果用調(diào)整后的概率結(jié)果如下:

P(過敏|打噴嚏&工人)
= P(打噴嚏&工人|過敏)×P(過敏) / P(打噴嚏&工人)
= P(打噴嚏|過敏)× P(工人|過敏)× P(過敏) / P(打噴嚏)× P(工人)
= (87.5% × 16.7% × 1/6)/ (1/2 × 1/3)

= 14.6%

****#連續(xù)變量處理#****
對于上例來說挖腰,不論是職業(yè)還是癥狀,都是離散變量练湿,也就是取值數(shù)有限猴仑,這樣都可以通過數(shù)個數(shù)的方式來計算概率(古典概率模型),但是如果出現(xiàn)連續(xù)型變量就不能靠數(shù)個數(shù)了肥哎,比如身高辽俗,可以有175cm 176cm 176.1cm 176.11cm,無窮盡……

  1. 處理方式一:離散化
    身高來說篡诽,可以就精確到cm崖飘,那么基于現(xiàn)實世界從40cm(嬰兒)到230cm(姚明)基本就夠用了,可以數(shù)個數(shù)杈女。要么就分段【小于100cm】【100-150cm】【150-180cm】……這樣也可以朱浴。
  2. 處理方式二:利用變量的分布來計算概率
    一般來說自然界中的大部分變量都是符合正態(tài)分布的吊圾,正態(tài)分布是一個鐘型曲線,概率意義是翰蠢,一次實驗取到均值附近概率最大项乒,去到遠離均值的值的概率越來越小。那么可以計算樣本的均值和標準差梁沧,利用Z值【(實際值-均值)/標準差】檀何,查標準正態(tài)分布表,查出取到每個樣本值的概率廷支。
    當然频鉴,如果明確知道變量屬于某個其他分布,如泊松分布酥泞,那么就直接用分布函數(shù)求概率即可砚殿。

#數(shù)學(xué)表達以備裝B之需#

NativeBayes
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啃憎,一起剝皮案震驚了整個濱河市芝囤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辛萍,老刑警劉巖悯姊,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贩毕,居然都是意外死亡悯许,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門辉阶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來先壕,“玉大人,你說我怎么就攤上這事谆甜±牛” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵规辱,是天一觀的道長谆棺。 經(jīng)常有香客問我,道長罕袋,這世上最難降的妖魔是什么改淑? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮浴讯,結(jié)果婚禮上朵夏,老公的妹妹穿的比我還像新娘。我一直安慰自己榆纽,他們只是感情好仰猖,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布询吴。 她就那樣靜靜地躺著,像睡著了一般亮元。 火紅的嫁衣襯著肌膚如雪猛计。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天爆捞,我揣著相機與錄音奉瘤,去河邊找鬼。 笑死煮甥,一個胖子當著我的面吹牛盗温,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播成肘,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼卖局,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了双霍?” 一聲冷哼從身側(cè)響起砚偶,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎洒闸,沒想到半個月后染坯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡丘逸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年单鹿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片深纲。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡仲锄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出湃鹊,到底是詐尸還是另有隱情儒喊,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布涛舍,位于F島的核電站澄惊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏富雅。R本人自食惡果不足惜掸驱,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望没佑。 院中可真熱鬧毕贼,春花似錦、人聲如沸蛤奢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至待秃,卻和暖如春拜秧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背章郁。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工枉氮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人暖庄。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓聊替,卻偏偏與公主長得像,于是被迫代替她去往敵國和親培廓。 傳聞我的和親對象是個殘疾皇子惹悄,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容