文章原創(chuàng),最近更新:2018-06-23
1.分類(lèi)問(wèn)題綜述
2.概率基礎(chǔ)
3.樸素貝葉斯分類(lèi)
4.貝葉斯推斷
5.案例
參考鏈接:
1、 CH10 分類(lèi)|10.1樸素貝葉斯《白話大數(shù)據(jù)與機(jī)器學(xué)習(xí)》-學(xué)習(xí)筆記
2、帶你理解樸素貝葉斯分類(lèi)算法
3杏愤、機(jī)器學(xué)習(xí)(10)之趣味案例理解樸素貝葉斯
4邑时、樸素貝葉斯分類(lèi)和預(yù)測(cè)算法的原理及實(shí)現(xiàn)
前言:通過(guò)網(wǎng)上找的文章,通過(guò)歸納總結(jié)具體如下:
1.分類(lèi)問(wèn)題綜述
貝葉斯分類(lèi)是一類(lèi)分類(lèi)算法的總稱,這類(lèi)算法均以貝葉斯定理為基礎(chǔ),故統(tǒng)稱為貝葉斯分類(lèi)客给。而樸素樸素貝葉斯分類(lèi)是貝葉斯分類(lèi)中最簡(jiǎn)單,也是常見(jiàn)的一種分類(lèi)方法肢簿。
分類(lèi)和回歸看上去有一些相似之處靶剑,從直觀感覺(jué)上去認(rèn)識(shí),可以這么感覺(jué):因變量是定量型的歸納學(xué)習(xí)稱為回歸池充,或者說(shuō)是連續(xù)變量預(yù)測(cè)桩引;因變量是定性型的歸納學(xué)習(xí)稱為分類(lèi),或者說(shuō)是離散變量預(yù)測(cè)收夸。
從實(shí)時(shí)收集的路況來(lái)預(yù)測(cè)某地段目前的行車(chē)速度為多少米每秒是典型的回歸歸納過(guò)程坑匠,而預(yù)測(cè)這個(gè)路段的行車(chē)狀態(tài)是“暢通”、“繁忙”咱圆、“擁堵”則是典型的分類(lèi)歸納過(guò)程笛辟。
分類(lèi)算法是一大類(lèi)算法,都是用來(lái)解決這種離散變量預(yù)測(cè)的序苏,舉例如下手幢。
在銀行的信用卡審批這一環(huán)節(jié)會(huì)用到分類(lèi)的例子,應(yīng)不應(yīng)該給一個(gè)人辦理信用卡呢忱详?應(yīng)該給一個(gè)申請(qǐng)人分配多少金額呢围来?尤其在有大量的申請(qǐng)人及調(diào)額申請(qǐng)的情況下。在這里會(huì)比較密集地用到分類(lèi)算法匈睁。在此只示意性地進(jìn)行說(shuō)明监透,畢竟這個(gè)過(guò)程非常復(fù)雜,而且不同銀行的計(jì)算原則也不盡相同航唆。
既然是貝葉斯分類(lèi)算法胀蛮,那么分類(lèi)的數(shù)學(xué)描述又是什么呢?從數(shù)學(xué)角度來(lái)說(shuō)糯钙,分類(lèi)問(wèn)題可做如下定義:
已知集合C=y1,y2,……,yn 和I=x1,x2,……,xn確定映射規(guī)則y=f()粪狼,使得任意xi∈I有且僅有一個(gè)yi∈C,使得yi∈f(xi)成立任岸。
其中C叫做類(lèi)別集合再榄,其中每一個(gè)元素是一個(gè)類(lèi)別,而I叫做項(xiàng)集合(特征集合)享潜,其中每一個(gè)元素是一個(gè)待分類(lèi)項(xiàng)困鸥,f叫做分類(lèi)器。分類(lèi)算法的任務(wù)就是構(gòu)造分類(lèi)器f剑按。
分類(lèi)算法的內(nèi)容是要求給定特征疾就,讓我們得出類(lèi)別澜术,這也是所有分類(lèi)問(wèn)題的關(guān)鍵。那么如何由指定特征猬腰,得到我們最終的類(lèi)別瘪板,也是我們下面要講的,每一個(gè)不同的分類(lèi)算法漆诽,對(duì)應(yīng)著不同的核心思想。
2.概率基礎(chǔ)
下面我們通過(guò)維恩圖來(lái)說(shuō)明貝葉斯公式中常見(jiàn)的幾個(gè)概率锣枝。
維恩圖中:
- S:S是樣本空間厢拭,是所有可能事件的總和。
- P(A):是樣本空間S中A事件發(fā)生的概率撇叁,維恩圖中綠色的部分供鸠。
- P(B):是樣本空間S中B事件發(fā)生的概率,維恩圖中藍(lán)色的部分陨闹。
- P(A∩B):是樣本空間S中A事件和B事件同時(shí)發(fā)生的概率楞捂,也就是A和B相交的區(qū)域。
- P(A|B):是條件概率趋厉,是B事件已經(jīng)發(fā)生時(shí)A事件發(fā)生的概率寨闹。
對(duì)于條件概率,還有一種更清晰的表示方式叫概率樹(shù)君账。下面的概率樹(shù)表示了條件概率P(A|B)繁堡。與維恩圖中的P(A∩B)相比,可以發(fā)現(xiàn)兩者明顯的區(qū)別乡数。
- P(A∩B)是事件A和事件B同時(shí)發(fā)現(xiàn)的情況椭蹄,因此是兩者相交區(qū)域的概率。
-
事件概率P(A|B)是事件B發(fā)生時(shí)事件A發(fā)生的概率净赴。這里有一個(gè)先決條件就是P(B)要首先發(fā)生绳矩。
因?yàn)闂l件概率P(A|B)是在事件B已經(jīng)發(fā)生的情況下,事件A發(fā)生的概率玖翅,因此P(A|B)可以表示為事件A與B的交集與事件B的比率翼馆。
該公式還可以轉(zhuǎn)換為以下形式,以便我們下面進(jìn)行貝葉斯公式計(jì)算時(shí)使用烧栋。
3.樸素貝葉斯分類(lèi)
那么既然是樸素貝葉斯分類(lèi)算法写妥,它的核心算法又是什么呢?是下面這個(gè)貝葉斯公式:
葉斯算法通過(guò)已知的P(A|B)审姓,P(A),和P(B)三個(gè)概率計(jì)算P(B|A)發(fā)生的概率珍特。假設(shè)我們現(xiàn)在已知P(A|B),P(A)和P(B)三個(gè)概率魔吐,如何計(jì)算P(B|A)呢扎筒?通過(guò)前面的概率樹(shù)及P(A|B)的概率可知莱找,P(B|A)的概率是在事件A發(fā)生的前提下事件B發(fā)生的概率,因此P(B|A)可以表示為事件B與事件A的交集與事件A的比率嗜桌。
該公式同樣可以轉(zhuǎn)化為以下形式:
到這一步奥溺,我們只需要證明P(A∩B)= P(B∩A)就可以證明在已知P(A|B)的情況下可以通過(guò)計(jì)算獲得P(B|A)的概率。我們將概率樹(shù)轉(zhuǎn)化為下面的概率表骨宠,分別列出P(A|B),P(B|A),P(A),和P(B)的概率浮定。
通過(guò)計(jì)算可以證明P(A|B)*P(B)和P(B|A)*P(A)最后求得的結(jié)果是概率表中的同一個(gè)區(qū)域的值,因此:
我們通過(guò)P(A∩B)=P(B∩A)證明了在已知P(A|B)层亿,P(A),和P(B)三個(gè)概率的情況下可以計(jì)算出P(B|A)發(fā)生的概率桦卒。整個(gè)推導(dǎo)和計(jì)算過(guò)程可以說(shuō)得通。但從統(tǒng)計(jì)學(xué)的角度來(lái)看匿又,P(A|B)和P(B|A)兩個(gè)條件概率之間存在怎樣的關(guān)系呢方灾?我們從貝葉斯推斷里可以找到答案。
4.貝葉斯推斷
貝葉斯推斷可以說(shuō)明貝葉斯定理中兩個(gè)條件概率之間的關(guān)系碌更。換句話說(shuō)就是我們?yōu)槭裁纯梢酝ㄟ^(guò)P(A|B)裕偿,P(A),和P(B)三個(gè)概率計(jì)算出P(B|A)發(fā)生的概率。
在貝葉斯推斷中痛单,每一種概率都有一個(gè)特定的名字:
- P(B)是"先驗(yàn)概率"(Prior probability)嘿棘。
- P(A)是"先驗(yàn)概率"(Prior probability),也作標(biāo)準(zhǔn)化常量(normalized constant)桦他。
- P(A|B)是已知B發(fā)生后A的條件概率蔫巩,叫做似然函數(shù)(likelihood)。
- P(B|A)是已知A發(fā)生后B的條件概率快压,是我們要求的值圆仔,叫做后驗(yàn)概率。
- P(A|B)/P(A)是調(diào)整因子蔫劣,也被稱作標(biāo)準(zhǔn)似然(standardisedlikelihood)坪郭。
貝葉斯推斷中有幾個(gè)關(guān)鍵的概念需要說(shuō)明下:
- 第一個(gè)是先驗(yàn)概率,先驗(yàn)概率是指我們主觀通過(guò)事件發(fā)生次數(shù)對(duì)概率的判斷脉幢。
- 第二個(gè)是似然函數(shù)歪沃,似然函數(shù)是對(duì)某件事發(fā)生可能性的判斷,與條件概率正好相反嫌松。通過(guò)事件已經(jīng)發(fā)生的概率推算事件可能性的概率沪曙。
維基百科中對(duì)似然函數(shù)與概率的解釋:
1)概率:是給定某一參數(shù)值,求某一結(jié)果的可能性萎羔。
例如液走,拋一枚勻質(zhì)硬幣,拋10次,6次正面向上的可能性多大缘眶?
2)似然函數(shù):給定某一結(jié)果嘱根,求某一參數(shù)值的可能性。
例如巷懈,拋一枚硬幣该抒,拋10次,結(jié)果是6次正面向上顶燕,勻質(zhì)的可能性多大凑保?
- 第三個(gè)是調(diào)整因子:調(diào)整因子是似然函數(shù)與先驗(yàn)概率的比值,這個(gè)比值相當(dāng)于一個(gè)權(quán)重涌攻,用來(lái)調(diào)整后驗(yàn)概率的值愉适,使后驗(yàn)概率更接近真實(shí)概率。調(diào)整因子有三種情況癣漆,大于1,等于1和小于1剂买。
- 調(diào)整因子P(A|B)/P(A)>1:說(shuō)明事件可能發(fā)生的概率要大于事件已經(jīng)發(fā)生次數(shù)的概率惠爽。
- 調(diào)整因子P(A|B)/P(A)=1:說(shuō)明事件可能發(fā)生的概率與事件已經(jīng)發(fā)生次數(shù)的概率相等。
- 調(diào)整因子P(A|B)/P(A)<1:說(shuō)明事件可能發(fā)生的概率與事件小于已經(jīng)發(fā)生次數(shù)的概率瞬哼。
因此婚肆,貝葉斯推斷可以理解為通過(guò)先驗(yàn)概率和調(diào)整因子來(lái)獲得后驗(yàn)概率。其中調(diào)整因子是根據(jù)事件已經(jīng)發(fā)生的概率推斷事件可能發(fā)生的概率(通過(guò)硬幣正面出現(xiàn)的次數(shù)來(lái)推斷硬幣均勻的可能性)坐慰,并與已經(jīng)發(fā)生的先驗(yàn)概率(硬幣正面出現(xiàn)的概率)的比值较性。通過(guò)這個(gè)比值調(diào)整先驗(yàn)概率來(lái)獲得后驗(yàn)概率。
后驗(yàn)概率〗嵴汀= 先驗(yàn)概率 x 調(diào)整因子
5.案例
5.1案例1:病人分類(lèi)的例子
某個(gè)醫(yī)院早上收了六個(gè)門(mén)診病人赞咙,如下表:
癥狀 | 職業(yè) | 疾病 |
---|---|---|
打噴嚏 | 護(hù)士 | 感冒 |
打噴嚏 | 農(nóng)夫 | 過(guò)敏 |
頭疼 | 建筑工人 | 腦震蕩 |
頭疼 | 建筑工人 | 感冒 |
打噴嚏 | 教師 | 感冒 |
頭疼 | 教師 | 腦震蕩 |
現(xiàn)在又來(lái)了第七個(gè)病人,是一個(gè)打噴嚏的建筑工人糟港。請(qǐng)問(wèn)他患上感冒的概率有多大攀操? 根據(jù)貝葉斯定理:
P(感冒|打噴嚏x建筑工人)
= P(打噴嚏x建筑工人|感冒) x P(感冒) / P(打噴嚏x建筑工人)
假定"打噴嚏"和"建筑工人"這兩個(gè)特征是獨(dú)立的,因此秸抚,上面的等式就變成了
P(感冒|打噴嚏x建筑工人) = P(打噴嚏|感冒) x P(建筑工人|感冒) x P(感冒)/ P(打噴嚏) x P(建筑工人)
這是可以計(jì)算的,P(感冒|打噴嚏x建筑工人) = 0.66 x 0.33 x 0.5 / 0.5 x 0.33 = 0.66
因此速和,這個(gè)打噴嚏的建筑工人,有66%的概率是得了感冒剥汤。同理颠放,可以計(jì)算這個(gè)病人患上過(guò)敏或腦震蕩的概率。比較這幾個(gè)概率吭敢,就可以知道他最可能得什么病碰凶。
這就是貝葉斯分類(lèi)器的基本方法:在統(tǒng)計(jì)資料的基礎(chǔ)上,依據(jù)某些特征,計(jì)算各個(gè)類(lèi)別的概率痒留,從而實(shí)現(xiàn)分類(lèi)谴麦。
5.2案例2:賬號(hào)分類(lèi)
根據(jù)某社區(qū)網(wǎng)站的抽樣統(tǒng)計(jì),該站10000個(gè)賬號(hào)中有89%為真實(shí)賬號(hào)(設(shè)為C0)伸头,11%為虛假賬號(hào)(設(shè)為C1)匾效。接下來(lái),就要用統(tǒng)計(jì)資料判斷一個(gè)賬號(hào)的真實(shí)性恤磷。
C0 = 0.89
C1 = 0.11
假定某一個(gè)賬號(hào)有以下三個(gè)特征
- F1: 日志數(shù)量/注冊(cè)天數(shù) ,F1 = 0.1
- F2: 好友數(shù)量/注冊(cè)天數(shù) ,F2 = 0.2
- F3: 是否使用真實(shí)頭像(真實(shí)頭像為1面哼,非真實(shí)頭像為0),F3 = 0
請(qǐng)問(wèn)該賬號(hào)是真實(shí)賬號(hào)還是虛假賬號(hào)?方法是使用樸素貝葉斯分類(lèi)器扫步,計(jì)算下面這個(gè)計(jì)算式的值魔策。
P(F1|C)P(F2|C)P(F3|C)P(C)
雖然上面這些值可以從統(tǒng)計(jì)資料得到,但是這里有一個(gè)問(wèn)題:
- F1和F2是連續(xù)變量河胎,不適宜按照某個(gè)特定值計(jì)算概率闯袒。
- 一個(gè)技巧是將連續(xù)值變?yōu)殡x散值,計(jì)算區(qū)間的概率游岳。比如將F1分解成[0, 0.05]政敢、(0.05, 0.2)、[0.2, +∞]三個(gè)區(qū)間胚迫,然后計(jì)算每個(gè)區(qū)間的概率喷户。
- 在我們這個(gè)例子中,F(xiàn)1等于0.1访锻,落在第二個(gè)區(qū)間褪尝,所以計(jì)算的時(shí)候,就使用第二個(gè)區(qū)間的發(fā)生概率
根據(jù)統(tǒng)計(jì)資料期犬,可得:
- P(F1|C0) = 0.5, P(F1|C1) = 0.1
- P(F2|C0) = 0.7, P(F2|C1) = 0.2
- P(F3|C0) = 0.2, P(F3|C1) = 0.9
因此
P(F1|C0) P(F2|C0) P(F3|C0) P(C0) = 0.5 x 0.7 x 0.2 x 0.89 = 0.0623
P(F1|C1) P(F2|C1) P(F3|C1) P(C1) = 0.1 x 0.2 x 0.9 x 0.11 = 0.00198
5.3案例3:性別分類(lèi)
下面是一組人類(lèi)身體特征的統(tǒng)計(jì)資料河哑。
性別 | 身高(英尺) | 體重(磅) | 腳掌(英寸) |
---|---|---|---|
男 | 6 | 180 | 12 |
男 | 5.92 | 190 | 11 |
男 | 5.58 | 170 | 12 |
男 | 5.92 | 165 | 10 |
女 | 5 | 100 | 6 |
女 | 5.5 | 150 | 8 |
女 | 5.42 | 130 | 7 |
mv | 5.75 | 150.9 | 9 |
已知某人身高6英尺、體重130磅龟虎,腳掌8英寸灾馒,請(qǐng)問(wèn)該人是男是女?根據(jù)樸素貝葉斯分類(lèi)器遣总,計(jì)算下面這個(gè)式子的值:
P(身高|性別) x P(體重|性別) x P(腳掌|性別) x P(性別)
P(身高|性別) x P(體重|性別) x P(腳掌|性別) x P(性別)
這里的困難在于睬罗,由于身高、體重旭斥、腳掌都是連續(xù)變量容达,不能采用離散變量的方法計(jì)算概率。而且由于樣本太少垂券,所以也無(wú)法分成區(qū)間計(jì)算花盐。怎么辦羡滑?
這時(shí),可以假設(shè)男性和女性的身高算芯、體重柒昏、腳掌都是正態(tài)分布,通過(guò)樣本計(jì)算出均值和方差熙揍,也就是得到正態(tài)分布的密度函數(shù)职祷。有了密度函數(shù),就可以把值代入届囚,算出某一點(diǎn)的密度函數(shù)的值有梆。比如,男性的身高是均值5.855意系、方差0.035的正態(tài)分布泥耀。所以,男性的身高為6英尺的概率的相對(duì)值等于1.5789(大于1并沒(méi)有關(guān)系蛔添,因?yàn)檫@里是密度函數(shù)的值痰催,只用來(lái)反映各個(gè)值的相對(duì)可能性)。
有了這些數(shù)據(jù)以后迎瞧,就可以計(jì)算性別的分類(lèi)了陨囊。
P(身高=6|男) x P(體重=130|男) x P(腳掌=8|男) x P(男) = 6.1984 x e-9
P(身高=6|女) x P(體重=130|女) x P(腳掌=8|女) x P(女) = 5.3778 x e-4
可以看到,女性的概率比男性要高出將近10000倍夹攒,所以判斷該人為女性。