基于概率論的分類方法—樸素貝葉斯

本章涉及到的知識(shí)點(diǎn)清單:

1乖订、條件概率

2蒸健、貝葉斯定理

3、目標(biāo)概率映射

4它呀、目標(biāo)概率映射的極大似然估計(jì)

5苞也、樸素定義—條件獨(dú)立性假設(shè)

6洛勉、分類邏輯

7、優(yōu)化分類器

8如迟、樸素貝葉斯分類器實(shí)戰(zhàn)—英文評(píng)論留言分類

9收毫、文檔切詞—構(gòu)造詞條列表

10、構(gòu)造詞匯表—定義特征值和特征向量

11殷勘、python編程實(shí)戰(zhàn)實(shí)現(xiàn)樸素貝葉斯分類器

12此再、分類器結(jié)果展示和總結(jié)

一、條件概率

假設(shè)有下列兩個(gè)事件A和B

事件A:早上乘坐地鐵卻沒有趕上8點(diǎn)鐘的地鐵

事件B:上班遲到

如果我們需要統(tǒng)計(jì):在所有上班遲到的人之中玲销,有多少人是因?yàn)樵缟蠜]有趕上8點(diǎn)鐘的地鐵输拇?那么可以用P(A|B)來表示這個(gè)概率結(jié)果—條件概率

條件概率的定義:在事件B發(fā)生的條件下,量化事件A發(fā)生的概率

同理贤斜,P(B|A)即表示:在所有沒有趕上8點(diǎn)鐘地鐵的人之中策吠,有多少人上班遲到了?

由條件概率的定義瘩绒,可以得到其計(jì)算方式為

條件概率的計(jì)算

其中猴抹,P(A\cap B)表示事件A和B共同發(fā)生的概率—聯(lián)合概率

P(B)表示事件B單獨(dú)發(fā)生的概率—邊緣概率

二、貝葉斯定理

我們寫出兩個(gè)條件概率:P(A\cap B)P(B\cap A)

條件概率

由于P(A\cap B) = P(B\cap A)草讶,則聯(lián)立兩個(gè)式子洽糟,得

貝葉斯定理

上式就是貝葉斯定理,它告訴我們?nèi)绾谓粨Q條件概率中的條件與結(jié)果,即如果P(A|B)計(jì)算困難坤溃,那么可以先計(jì)算P(B|A)

三拍霜、目標(biāo)概率映射

令X表示一個(gè)樣本實(shí)例的特征向量,其是由一系列特征值構(gòu)成的n維向量薪介,即

特征向量

其中x1祠饺,x2等代表特征值,則X是一個(gè)n維特征向量汁政,代表一個(gè)樣本實(shí)例的量化結(jié)果

令C表示所有樣本的分類集合

樣本的分類集合

一個(gè)樣本屬于一個(gè)類別道偷,即一個(gè)特征向量Xi和一個(gè)具體的類別ck具有一組映射關(guān)系。而這組映射關(guān)系记劈,可以用條件概率來這樣描述

P(c_{k}|X_{i}):表示任意一個(gè)n維特征向量X勺鸦,屬于類別ck的條件概率

而根據(jù)貝葉斯定理

學(xué)習(xí)目標(biāo)

通過觀察,上式中Xi屬于c1目木、c2或者ck的概率换途,分母都會(huì)存在Xi的邊緣概率P(X_{i}),即Xi屬于任何類別的概率和其邊緣概率P(X_{i})無關(guān)刽射,為此我們可以得到

學(xué)習(xí)目標(biāo)

即我們要計(jì)算條件概率P(c_{k}|X_{i})军拟,需要先從樣本集合中學(xué)習(xí)到以下兩個(gè)概率映射:

(1)條件概率:P(X_{i}|c_{k})

(2)邊緣概率:P(c_{k})

四、目標(biāo)概率映射的極大似然估計(jì)

接下來我們需要計(jì)算要學(xué)習(xí)的目標(biāo)概率誓禁,可以用統(tǒng)計(jì)計(jì)數(shù)(極大似然估計(jì))來計(jì)算這兩個(gè)概率

假設(shè)有M個(gè)樣本(M個(gè)特征向量)懈息,則邊緣概率P(c_{k})的極大似然估計(jì)為:

邊緣概率的極大似然估計(jì)

即M個(gè)樣本中,各個(gè)樣本類別c=ck發(fā)生的次數(shù)摹恰,除以樣本總數(shù)

條件概率P(X_{i}|c_{k})的極大似然估計(jì)為:

條件概率的極大似然估計(jì)

即M個(gè)樣本中辫继,各個(gè)樣本X=Xi且類別c=ck共同發(fā)生的次數(shù),除以各個(gè)樣本類別c=ck發(fā)生的次數(shù)

五戒祠、樸素定義—條件獨(dú)立性假設(shè)

計(jì)算完P(X_{i}|c_{k})P(c_{k})這兩個(gè)概率映射后骇两,對(duì)于任意一個(gè)新樣本的特征向量X,我們只需要將其帶入P(X_{i}|c_{k})映射計(jì)算姜盈,最后用貝葉斯定理計(jì)算出P(c_{k}|X_{i})低千,不過這里會(huì)存在一個(gè)問題:

我們將P(X_{i}|c_{k})的特征向量X展開為n個(gè)特征值表示

特征向量X展開為n個(gè)特征值x

假設(shè)每一個(gè)特征值都是二值化(binary),則X共有2*2*...2 = 2^{n}-1種可能的取值

再假設(shè)類別集合C總共只有2個(gè)類別馏颂,那么P(X_{i}|c_{k})P(c_{k})總共就有2*(2^{n}-1)種可能性的組合

即上述概率乘積面臨“組合爆炸”的可能性非常大示血,為了降低參數(shù)可能的組合總數(shù),就需要用到樸素貝葉斯假設(shè)

樸素貝葉斯假設(shè):也稱條件獨(dú)立性假設(shè)救拉,指當(dāng)在c=ck這個(gè)條件(事件)的情況下难审,不同特征值之間的取值互相獨(dú)立

即:

樸素貝葉斯假設(shè)

上述翻譯為:在類別為ck的條件下,特征值x1取值的條件概率與其余特征值的取值無關(guān)

六亿絮、分類邏輯

應(yīng)用樸素貝葉斯假設(shè)告喊,我們將待分類的特征向量X帶入P(X_{i}|c_{k})概率映射計(jì)算麸拄,得

樸素貝葉斯假設(shè)

可以看到,當(dāng)xj和ck都是binary的時(shí)候黔姜,通過應(yīng)用樸素貝葉斯假設(shè)拢切,組合參數(shù)的個(gè)數(shù)由2*(2^{n}-1)減少到了2*n

接下來用貝葉斯定理計(jì)算出待分類的特征向量X屬于ck的條件概率,即

特征向量X屬于ck的條件概率

最后統(tǒng)計(jì)出X屬于分類集合C=c1|c2...|ck中條件概率最大的類別秆吵,就是X的分類結(jié)果淮椰,即

X的分類結(jié)果

至此,我們就利用貝葉斯定理和樸素貝葉斯假設(shè)纳寂,完成了樸素貝葉斯分類器

七主穗、優(yōu)化分類器

上述分類器存在2點(diǎn)需要優(yōu)化的地方:

(1)由于計(jì)算過程中存在連乘運(yùn)算\prod_{j=1}^{n}P(x_{j}|c_{k}),則當(dāng)某一個(gè)特征值xj的條件概率P(x_{j}|c_{k})為0時(shí)毙芜,會(huì)使得整個(gè)連乘運(yùn)算\prod_{j=1}^{n}P(x_{j}|c_{k})的結(jié)果為0

優(yōu)化方法:將每個(gè)特征值xj的條件概率P(x_{j}|c_{k})初始化為1

(2)還是由于連乘運(yùn)算\prod_{j=1}^{n}P(x_{j}|c_{k})可能會(huì)使得一些列小數(shù)的乘積結(jié)果下溢出

優(yōu)化方法:可以利用對(duì)數(shù)的乘積運(yùn)算轉(zhuǎn)化為對(duì)數(shù)之和

對(duì)數(shù)的乘積運(yùn)算

分別對(duì)P(X_{i}|c_{k})P(c_{k}|X_{i})取對(duì)數(shù)忽媒,即可防止計(jì)算結(jié)果下溢出

八、樸素貝葉斯分類器實(shí)戰(zhàn)—英文評(píng)論留言分類

接下來我們分析一個(gè)實(shí)際的文本分類例子—在線社區(qū)的留言板

為了不影響社區(qū)的正面發(fā)展腋粥,從產(chǎn)品的角度猾浦,希望社區(qū)可以自動(dòng)屏蔽帶有侮辱類(負(fù)面)的留言,讓社區(qū)只保留非侮辱類(正面)的留言

那么從技術(shù)的角度灯抛,利用監(jiān)督式學(xué)習(xí),我們希望從歷史留言中選取部分樣本來學(xué)習(xí)一個(gè)留言分類器音瓷,用來對(duì)新留言進(jìn)行邏輯推理对嚼,判斷新留言是否屬于侮辱性類別的留言,這里我們采用樸素貝葉斯模型訓(xùn)練分類器

則對(duì)此問題建立兩個(gè)類別:侮辱類和非侮辱類绳慎,分別使用1和0來表示纵竖,為此,我們列出該場(chǎng)景下使用樸素貝葉斯訓(xùn)練分類器的步驟:

(1)收集數(shù)據(jù):獲取留言和其分類結(jié)果

(2)量化數(shù)據(jù):將留言解析量化為詞條向量(特征值的定義)

(3)分析數(shù)據(jù):檢查詞條向量確保量化的正確性

(4)訓(xùn)練分類器:計(jì)算特征向量中不同特征值的條件概率

(5)使用分類器:根據(jù)計(jì)算好的條件概率杏愤,通過樸素貝葉斯計(jì)算新留言屬于每個(gè)類別的概率

(6)測(cè)試算法:交叉驗(yàn)證分類器

假設(shè)已經(jīng)有了樣本留言靡砌,則我們從量化數(shù)據(jù)開始一步步構(gòu)造分類器

九、文檔切詞—構(gòu)造詞條列表

訓(xùn)練留言樣本

首先珊楼,我們對(duì)每個(gè)句子進(jìn)行英文語法的切詞通殃,定義切詞的規(guī)則如下:

(1)以標(biāo)準(zhǔn)英文單詞的空格語法來切分句子(使用正則表達(dá)式過濾標(biāo)點(diǎn)符號(hào))

(2)統(tǒng)一所有單詞為小寫單詞

(3)切分的單詞長(zhǎng)度均大于3

(4)切分單詞沒有出現(xiàn)在停詞表中(排除冠詞、量詞厕宗、語氣詞等無用詞)

PS:根據(jù)不同場(chǎng)景画舌,切詞的規(guī)則可以很復(fù)雜

用以上切詞規(guī)則,我們將樣本句子切分為下列詞條列表

詞條列表

十已慢、構(gòu)造詞匯表—定義特征值和特征向量

接下來我們整理詞條列表中的每一個(gè)單詞曲聂,排除重復(fù)出現(xiàn)的單詞,構(gòu)造出樣本的詞匯表

詞匯表

可以看到去重后有14個(gè)單詞組成詞匯表佑惠,而這14個(gè)單詞可以反映描述到所有句子中

詞匯表的意義為將句子翻譯為特征值和特征向量(詞條向量)

(1)特征值的定義:詞匯表中的單詞依次是否出現(xiàn)在當(dāng)前句子中朋腋,出現(xiàn)為1齐疙,沒有出現(xiàn)為0

(2)特征向量的定義:由所有特征值組成的詞向量

根據(jù)上述定義,我們用詞匯表作為翻譯標(biāo)準(zhǔn)旭咽,將詞條列表翻譯為下列詞向量

詞向量

至此贞奋,我們用這個(gè)14維的詞向量來描述一個(gè)句子的所有特征—單詞的分布和出現(xiàn)情況,即完成了句子到向量的量化過程

PS:文本處理的特征值一般有兩個(gè)模型

(1)詞集模型:?jiǎn)卧~在句子中是否出現(xiàn)

(2)詞袋模型:?jiǎn)卧~在句子中出現(xiàn)的總次數(shù)

案例里我們使用了詞集模型來定義特征值轻专,接下來只要使用詞向量來訓(xùn)練分類器即可

十一忆矛、python編程實(shí)戰(zhàn)實(shí)現(xiàn)樸素貝葉斯分類器

句子切詞規(guī)則
構(gòu)造詞匯表
構(gòu)造詞條向量
訓(xùn)練分類器
使用分類器

十二、分類器結(jié)果展示和總結(jié)

最后用訓(xùn)練好的分類器來測(cè)試新留言句子的分類結(jié)果為

測(cè)試分類結(jié)果

至此请垛,我們可以總結(jié)出使用樸素貝葉斯作為分類器的幾個(gè)特點(diǎn)

(1)樸素貝葉斯是一個(gè)通用的分類器催训,通過監(jiān)督學(xué)習(xí)可以處理文本分類、公司上市質(zhì)量宗收、股票質(zhì)量等多分類問題

(2)利用條件獨(dú)立性假設(shè)漫拭,降低了對(duì)數(shù)據(jù)量組合的需求,雖然這個(gè)假設(shè)過于簡(jiǎn)單混稽,甚至有時(shí)不正確采驻,可是樸素貝葉斯仍然是一種有效的分類器

(3)對(duì)于文本分類問題的樸素貝葉斯分類器的優(yōu)化空間主要有:

? ? ? ? a:特征值的定義,如詞袋模型的效果高于詞集模型匈勋,停用詞表的優(yōu)化等

????????b:切詞的規(guī)則

案例代碼見:英文評(píng)論留言分類

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末礼旅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子洽洁,更是在濱河造成了極大的恐慌痘系,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饿自,死亡現(xiàn)場(chǎng)離奇詭異汰翠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)昭雌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門复唤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烛卧,你說我怎么就攤上這事佛纫。” “怎么了总放?”我有些...
    開封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵雳旅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我间聊,道長(zhǎng)攒盈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任哎榴,我火速辦了婚禮型豁,結(jié)果婚禮上僵蛛,老公的妹妹穿的比我還像新娘。我一直安慰自己迎变,他們只是感情好充尉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著衣形,像睡著了一般驼侠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谆吴,一...
    開封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天倒源,我揣著相機(jī)與錄音,去河邊找鬼句狼。 笑死笋熬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腻菇。 我是一名探鬼主播胳螟,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼筹吐!你這毒婦竟也來了糖耸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤丘薛,失蹤者是張志新(化名)和其女友劉穎蔬捷,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體榔袋,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年铡俐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了凰兑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡审丘,死狀恐怖吏够,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情滩报,我是刑警寧澤锅知,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站脓钾,受9級(jí)特大地震影響售睹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜可训,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一昌妹、第九天 我趴在偏房一處隱蔽的房頂上張望捶枢。 院中可真熱鬧,春花似錦飞崖、人聲如沸烂叔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蒜鸡。三九已至,卻和暖如春牢裳,著一層夾襖步出監(jiān)牢的瞬間逢防,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來泰國打工贰健, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留胞四,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓伶椿,卻偏偏與公主長(zhǎng)得像辜伟,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子脊另,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

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