[監(jiān)督式]貝氏分類器(Naive Bayes classifier)

貝氏(Byes)

機率計算可以參考統(tǒng)計學筆記

貝氏定理

一個隨機事件或者一個不確定事件的後驗機率是在考慮和給出相關證據(jù)或數(shù)據(jù)後所得到的條件機率。同樣棋返,後驗機率分布是一個未知量(視為隨機變數(shù))基於試驗和調查後得到的機率分布睛竣。


  1. 相依 (dependent) – 事件 A 的發(fā)生會受事件 B 的影響射沟,反之亦然验夯。
    ??(??,??) = ??(??|??)×??(??) = ??(??|??)×??(??) = P(A∩B)
    ??(??|??) = ??(??,??)÷??(??) = ??(??|??)×??(??)÷??(??)
  2. 獨立 (independent) – 事件 A 的發(fā)生與事件 B 的發(fā)生無任何關係或彼此不會互相影響挥转。
    ??(??,??) = ??(??)×??(??) = P(A∪B)
    ??(??|??) = ??(??)
    ??(??|??) = ??(??)
  3. 互斥 (mutually exclusive) – 若事件 A 與事件 B 不可能同時發(fā)生扁位,則兩事件互斥域仇。
    ??(??,??) = 0 = P(A∩B) = 0 = A∩B = ?
  • 事件互為相依關係時依貝氏定理:

貝氏分類器

單純貝氏

wiki百科

多項式模型泼掠、伯努利模型(離散資料)
  • 資料

    多項式模型:P(便宜|垃圾郵件) = 垃圾郵件便宜詞數(shù)、所有郵件總詞數(shù)

    伯努利模型:P(便宜|垃圾郵件) = 包含便宜的垃圾郵件數(shù)腻豌、所有郵件總數(shù)
  • 計算
    假設我們有一批標記好的郵件從郵件中隨機抽出一封郵件,我們用A表示此郵件為垃圾郵件事件苏携,B表示此郵件為包含優(yōu)惠這個詞事件右冻,兩事件是相依關係著拭。
    我們統(tǒng)計數(shù)據(jù)了一下郵件是垃圾郵件的機率P(A)=0.6儡遮,垃圾郵件有"優(yōu)惠"這個詞的機率P(B|A)=0.8峦萎,非垃圾郵件有"優(yōu)惠"這個詞的機率P(B|\overline{A})=0.01爱榔。

郵件包含"優(yōu)惠"為垃圾郵件的機率為:
P(A|B) = \frac{( P(B|A)*P(A) )}{( P(B|A)*P(A) +P(B|\overline{A})*P(\overline{A}) )}
P(A|B) = \frac{0.8*0.6}{0.8*0.6+0.01*0.4} = 0.9917 = 99\%

  • 缺點
  1. 單純貝氏有個假設是郵件包含某個詞的機率與郵件包另一個個詞的機率完全獨立,所以郵件包含"優(yōu)惠"為垃圾郵件的機率=0.99唇聘,郵件包含"帳單"為垃圾郵件的機率=0.05迟郎,郵件包含"優(yōu)惠"及"帳單"為垃圾郵件的機率 = 0.99*0.050 = 0.0495=5%
    這有個明顯的問題是實上如果我們已經知道郵件中如果包含"優(yōu)惠"這個字(A事件)條件下宪肖,而在郵件中看到"便宜"這個字(B事件)的機率P(B)就會比較高控乾,所以實際上??(??|??) ≠ ??(??)蜕衡,??(??|??) ≠ ??(??)慨仿。
  • 實作方法
  1. 統(tǒng)計所有郵件、垃圾郵件桶现、非垃圾郵件總數(shù)骡和。
  2. 統(tǒng)計所有出現(xiàn)的詞慰于,以及詞出現(xiàn)在垃圾郵件數(shù)量婆赠、詞出現(xiàn)在非垃圾郵件數(shù)量休里,我們可以用python字典key=詞妙黍,value=[垃圾郵件數(shù)量,非垃圾郵件數(shù)量]來保存統(tǒng)計每個詞的結果拭嫁。
  3. 計算每個詞為垃圾郵件的機率P(A|B)做粤、與每個詞為非垃圾郵件的機率P(B|\overline{A})怕品。
  4. 因為假設完全獨立堵泽,最後可以依據(jù)P(A|B)迎罗、P(B|\overline{A}),計算郵件為垃圾郵件的機率杏死、郵件為非垃圾郵件的機率
    郵件為垃圾郵件的機率 = 所有詞的P(A|B)相乘(\prod P(A|B))
    郵件為非垃圾郵件的機率 = 所有詞的P(B|\overline{A})相乘(\prod P(B|\overline{A}))
  5. 判斷垃圾郵件的機率及非垃圾郵件的機率的大小來決定郵件類別

實作會有幾個問題:

  1. 不同詞彙組合的機率相乘會造成underflow(下溢)塔粒,我們使用一個trick來避免
    p_1*p_2*p_3...*p_n(機率的相乘)=exp(log(p_1)*log(p_2)....log(p_n))
  2. 我們在統(tǒng)計機率時可能會遇到某個詞只出現(xiàn)在非垃圾郵件卒茬,這樣P(B|A)就會等於0圃酵,造成任何只要有這個單詞出現(xiàn)我們都判為非垃圾郵件(為垃圾郵件機率等於0)郭赐,我們有個比較平滑的做法:
    P(B|A)=(k+垃圾郵件中有這個單詞的郵件數(shù)量)/(2k+垃圾郵件的數(shù)量)
    P(B|\overline{A})=(k+非垃圾郵件中有這個單詞的郵件數(shù)量)/(2k+非垃圾郵件的數(shù)量)
  3. 郵件對於不同語言俘陷,我們需要進行不同的前處理拉盾,英文需要轉換大小寫、時態(tài)替蔬、移除停用詞承桥,中文需要斷詞凶异、移除停用詞剩彬。
  4. 如果詞太多我們可以忽略出現(xiàn)次數(shù)低於某個min_count的詞喉恋,然後預測中沒見過的詞則忽略轻黑。
高斯模型(連續(xù)資料)

有些特徵可能是連續(xù)型變量氓鄙,比如說人的身高抖拦,物體的長度蟋座,這些特徵可以轉換成離散型的值向臀,比如如果身高在160cm以下券膀,特徵值為1芹彬;在160cm和170cm之間,特徵值為2舒帮;在170cm之上会喝,特徵值為3。也可以這樣轉換玩郊,將身高轉換為3個特徵肢执,分別是f1、f2译红、f3预茄,如果身高是160cm以下侦厚,這三個特徵的值分別是1耻陕、0拙徽、0,若身高在170cm之上诗宣,這三個特徵的值分別是0膘怕、0、1梧田。不過這些方式都不夠細膩淳蔼,高斯模型可以解決這個問題。


實作

Naive Bayes
sklearn範例
sklearn範例

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末裁眯,一起剝皮案震驚了整個濱河市鹉梨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌穿稳,老刑警劉巖存皂,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逢艘,居然都是意外死亡旦袋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門它改,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疤孕,“玉大人,你說我怎么就攤上這事央拖〖婪В” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵鲜戒,是天一觀的道長专控。 經常有香客問我,道長遏餐,這世上最難降的妖魔是什么伦腐? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮失都,結果婚禮上柏蘑,老公的妹妹穿的比我還像新娘。我一直安慰自己粹庞,他們只是感情好咳焚,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著信粮,像睡著了一般黔攒。 火紅的嫁衣襯著肌膚如雪趁啸。 梳的紋絲不亂的頭發(fā)上强缘,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天督惰,我揣著相機與錄音,去河邊找鬼旅掂。 笑死赏胚,一個胖子當著我的面吹牛,可吹牛的內容都是我干的商虐。 我是一名探鬼主播觉阅,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼秘车!你這毒婦竟也來了典勇?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤叮趴,失蹤者是張志新(化名)和其女友劉穎割笙,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體眯亦,經...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡伤溉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了妻率。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乱顾。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宫静,靈堂內的尸體忽然破棺而出走净,到底是詐尸還是另有隱情,我是刑警寧澤囊嘉,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布温技,位于F島的核電站,受9級特大地震影響扭粱,放射性物質發(fā)生泄漏舵鳞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一琢蛤、第九天 我趴在偏房一處隱蔽的房頂上張望蜓堕。 院中可真熱鬧,春花似錦博其、人聲如沸套才。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽背伴。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間傻寂,已是汗流浹背息尺。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留疾掰,地道東北人搂誉。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像静檬,于是被迫代替她去往敵國和親炭懊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內容