在眾多機(jī)器學(xué)習(xí)分類(lèi)算法中,本篇我們提到的樸素貝葉斯模型,和其他絕大多數(shù)分類(lèi)算法都不同,也是很重要的模型之一。 在機(jī)器學(xué)習(xí)中如KNN、邏輯回歸、決策樹(shù)等模型都是判別方法,也就是直接學(xué)習(xí)出特征輸出和特征之間的關(guān)系(決策函數(shù)或者條件分布)。但樸素貝葉斯是生成方法,它直接找出特征輸出和特征的聯(lián)合分布,進(jìn)而通過(guò)計(jì)算得出結(jié)果判定。 樸素貝葉斯是一個(gè)非常直觀的模型,在很多領(lǐng)域有廣泛的應(yīng)用,比如早期的文本分類(lèi),很多時(shí)候會(huì)用它作為 baseline 模型,本篇內(nèi)容我們對(duì)樸素貝葉斯算法原理做展開(kāi)介紹。 1.樸素貝葉斯算法核心思想貝葉斯分類(lèi)是一類(lèi)分類(lèi)算法的總稱,這類(lèi)算法均以貝葉斯定理為基礎(chǔ),故統(tǒng)稱為貝葉斯分類(lèi)。而樸素貝葉斯(Naive Bayes)分類(lèi)是貝葉斯分類(lèi)中最簡(jiǎn)單,也是常見(jiàn)的一種分類(lèi)方法。 樸素貝葉斯算法的核心思想是通過(guò)考慮特征概率來(lái)預(yù)測(cè)分類(lèi),即對(duì)于給出的待分類(lèi)樣本,求解在此樣本出現(xiàn)的條件下各個(gè)類(lèi)別出現(xiàn)的概率,哪個(gè)最大,就認(rèn)為此待分類(lèi)樣本屬于哪個(gè)類(lèi)別。 ![]()
一般挑西瓜時(shí)通常要『敲一敲』,聽(tīng)聽(tīng)聲音,是清脆聲、濁響聲、還是沉悶聲。所以,我們先簡(jiǎn)單點(diǎn)考慮這個(gè)問(wèn)題,只用敲擊的聲音來(lái)辨別西瓜的好壞。根據(jù)經(jīng)驗(yàn),敲擊聲『清脆』說(shuō)明西瓜還不夠熟,敲擊聲『沉悶』說(shuō)明西瓜成熟度好,更甜更好吃。 ![]() 所以,壞西瓜的敲擊聲是『清脆』的概率更大,好西瓜的敲擊聲是『沉悶』的概率更大。當(dāng)然這并不絕對(duì)——我們千挑萬(wàn)選地『沉悶』瓜也可能并沒(méi)熟,這就是噪聲了。當(dāng)然,在實(shí)際生活中,除了敲擊聲,我們還有其他可能特征來(lái)幫助判斷,例如色澤、跟蒂、品類(lèi)等。 樸素貝葉斯把類(lèi)似『敲擊聲』這樣的特征概率化,構(gòu)成一個(gè)『西瓜的品質(zhì)向量』以及對(duì)應(yīng)的『好瓜/壞瓜標(biāo)簽』,訓(xùn)練出一個(gè)標(biāo)準(zhǔn)的『基于統(tǒng)計(jì)概率的好壞瓜模型』,這些模型都是各個(gè)特征概率構(gòu)成的。 ![]() 這樣,在面對(duì)未知品質(zhì)的西瓜時(shí),我們迅速獲取了特征,分別輸入『好瓜模型』和『壞瓜模型』,得到兩個(gè)概率值。如果『壞瓜模型』輸出的概率值大一些,那這個(gè)瓜很有可能就是個(gè)壞瓜。 2.貝葉斯公式與條件獨(dú)立假設(shè)貝葉斯定理中很重要的概念是先驗(yàn)概率、后驗(yàn)概率和條件概率。(關(guān)于這部分依賴的數(shù)學(xué)知識(shí),大家可以查看ShowMeAI的文章 圖解AI數(shù)學(xué)基礎(chǔ) | 概率與統(tǒng)計(jì),也可以下載我們的速查手冊(cè) AI知識(shí)技能速查 | 數(shù)學(xué)基礎(chǔ)-概率統(tǒng)計(jì)知識(shí))(鏈接見(jiàn)文末)。 1)先驗(yàn)概率與后驗(yàn)概率先驗(yàn)概率:事件發(fā)生前的預(yù)判概率??梢允腔跉v史數(shù)據(jù)的統(tǒng)計(jì),可以由背景常識(shí)得出,也可以是人的主觀觀點(diǎn)給出。一般都是單獨(dú)事件概率。
后驗(yàn)概率:事件發(fā)生后求的反向條件概率。或者說(shuō),基于先驗(yàn)概率求得的反向條件概率。概率形式與條件概率相同。
條件概率:一個(gè)事件發(fā)生后另一個(gè)事件發(fā)生的概率。一般的形式為表示發(fā)生的條件下發(fā)生的概率。 ![]() 2)貝葉斯公式簡(jiǎn)單來(lái)說(shuō),貝葉斯定理(Bayes Theorem,也稱貝葉斯公式)是基于假設(shè)的先驗(yàn)概率、給定假設(shè)下觀察到不同數(shù)據(jù)的概率,提供了一種計(jì)算后驗(yàn)概率的方法。在人工智能領(lǐng)域,有一些概率型模型會(huì)依托于貝葉斯定理,比如我們今天的主角『樸素貝葉斯模型』。 ![]() 是先驗(yàn)概率,一般都是人主觀給出的。貝葉斯中的先驗(yàn)概率一般特指它。 是先驗(yàn)概率,在貝葉斯的很多應(yīng)用中不重要(因?yàn)橹灰畲蠛篁?yàn)不求絕對(duì)值),需要時(shí)往往用全概率公式計(jì)算得到。 是條件概率,又叫似然概率,一般是通過(guò)歷史數(shù)據(jù)統(tǒng)計(jì)得到。 是后驗(yàn)概率,一般是我們求解的目標(biāo)。 3)條件獨(dú)立假設(shè)與樸素貝葉斯基于貝葉斯定理的貝葉斯模型是一類(lèi)簡(jiǎn)單常用的分類(lèi)算法。在『假設(shè)待分類(lèi)項(xiàng)的各個(gè)屬性相互獨(dú)立』的情況下,構(gòu)造出來(lái)的分類(lèi)算法就稱為樸素的,即樸素貝葉斯算法。 所謂『樸素』,是假定所有輸入事件之間是相互獨(dú)立。進(jìn)行這個(gè)假設(shè)是因?yàn)楠?dú)立事件間的概率計(jì)算更簡(jiǎn)單。 樸素貝葉斯模型的基本思想是:對(duì)于給定的待分類(lèi)項(xiàng) ,求解在此項(xiàng)出現(xiàn)的條件下各個(gè)類(lèi)別出現(xiàn)的概率,哪個(gè)最大,就把此待分類(lèi)項(xiàng)歸屬于哪個(gè)類(lèi)別。 樸素貝葉斯算法的定義為:設(shè) 為一個(gè)待分類(lèi)項(xiàng),每個(gè)為x的一個(gè)特征屬性,且特征屬性之間相互獨(dú)立。設(shè)為一個(gè)類(lèi)別集合,計(jì)算。 則 ![]() 要求出第四項(xiàng)中的后驗(yàn)概率,就需要分別求出在第三項(xiàng)中的各個(gè)條件概率,其步驟是:
![]() 在樸素貝葉斯算法中,待分類(lèi)項(xiàng)的每個(gè)特征屬性都是條件獨(dú)立的,由貝葉斯公式 因?yàn)榉帜赶喈?dāng)于在數(shù)據(jù)庫(kù)中存在的概率,所以對(duì)于任何一個(gè)待分類(lèi)項(xiàng)來(lái)說(shuō)都是常數(shù)固定的。再求后驗(yàn)概率的時(shí)候只用考慮分子即可。 因?yàn)楦魈卣髦凳仟?dú)立的所以有: 可以推出: ![]() 對(duì)于是指在訓(xùn)練樣本中出現(xiàn)的概率,可以近似的求解為: 對(duì)于先驗(yàn)概率,是指在類(lèi)別中,特征元素出現(xiàn)的概率,可以求解為: ![]() 總結(jié)一下,樸素貝葉斯模型的分類(lèi)過(guò)程如下流程圖所示: ![]() 3.伯努利與多項(xiàng)式樸素貝葉斯1)多項(xiàng)式vs伯努利樸素貝葉斯大家在一些資料中,會(huì)看到『多項(xiàng)式樸素貝葉斯』和『伯努利樸素貝葉斯』這樣的細(xì)分名稱,我們?cè)谶@里基于文本分類(lèi)來(lái)給大家解釋一下: ![]() 在文本分類(lèi)的場(chǎng)景下使用樸素貝葉斯,那對(duì)應(yīng)的特征就是單詞,對(duì)應(yīng)的類(lèi)別標(biāo)簽就是,這里有一個(gè)問(wèn)題:每個(gè)單詞會(huì)出現(xiàn)很多次,我們對(duì)于頻次有哪些處理方法呢?
![]() (1)多項(xiàng)式樸素貝葉斯以文本分類(lèi)為例,多項(xiàng)式模型如下。在多項(xiàng)式模型中,設(shè)某文檔,是該文檔中出現(xiàn)過(guò)的單詞,允許重復(fù),則: 先驗(yàn)概率 類(lèi)條件概率
(2)伯努利樸素貝葉斯對(duì)應(yīng)的,在伯努利樸素貝葉斯里,我們假設(shè)各個(gè)特征在各個(gè)類(lèi)別下是服從n重伯努利分布(二項(xiàng)分布)的,因?yàn)椴囼?yàn)僅有兩個(gè)結(jié)果,因此,算法會(huì)首先對(duì)特征值進(jìn)行二值化處理(假設(shè)二值化的結(jié)果為1與0)。 對(duì)應(yīng)的和計(jì)算方式如下(注意到分子分母的變化): 2)樸素貝葉斯與連續(xù)值特征我們發(fā)現(xiàn)在之前的概率統(tǒng)計(jì)方式,都是基于離散值的。如果遇到連續(xù)型變量特征,怎么辦呢? 以人的身高,物體的長(zhǎng)度為例。一種處理方式是:把它轉(zhuǎn)換成離散型的值。比如:
當(dāng)然有不同的轉(zhuǎn)換方法,比如還可以:
但是,以上的劃分方式,都比較粗糙,劃分的規(guī)則也是人為擬定的,且在同一區(qū)間內(nèi)的樣本(比如第1套變換規(guī)則下,身高150和155)難以區(qū)分,我們有高斯樸素貝葉斯模型可以解決這個(gè)問(wèn)題。 如果特征是連續(xù)變量,如何去估計(jì)似然度呢?高斯模型是這樣做的:我們假設(shè)在的條件下,服從高斯分布(正態(tài)分布)。根據(jù)正態(tài)分布的概率密度函數(shù)即可計(jì)算出,公式如下: ![]() 回到上述例子,如果身高是我們判定人性別(男/女)的特征之一,我們可以假設(shè)男性和女性的身高服從正態(tài)分布,通過(guò)樣本計(jì)算出身高均值和方差,對(duì)應(yīng)上圖中公式就得到正態(tài)分布的密度函數(shù)。有了密度函數(shù),遇到新的身高值就可以直接代入,算出密度函數(shù)的值。 4.平滑處理1)為什么需要平滑處理使用樸素貝葉斯,有時(shí)候會(huì)面臨零概率問(wèn)題。零概率問(wèn)題,指的是在計(jì)算實(shí)例的概率時(shí),如果某個(gè)量,在觀察樣本庫(kù)(訓(xùn)練集)中沒(méi)有出現(xiàn)過(guò),會(huì)導(dǎo)致整個(gè)實(shí)例的概率結(jié)果是0。 在文本分類(lèi)的問(wèn)題中,當(dāng)『一個(gè)詞語(yǔ)沒(méi)有在訓(xùn)練樣本中出現(xiàn)』時(shí),這個(gè)詞基于公式統(tǒng)計(jì)計(jì)算得到的條件概率為0,使用連乘計(jì)算文本出現(xiàn)概率時(shí)也為0。這是不合理的,不能因?yàn)橐粋€(gè)事件沒(méi)有觀察到就武斷的認(rèn)為該事件的概率是0。 2)拉普拉斯平滑及依據(jù)為了解決零概率的問(wèn)題,法國(guó)數(shù)學(xué)家拉普拉斯最早提出用加1的方法估計(jì)沒(méi)有出現(xiàn)過(guò)的現(xiàn)象的概率,所以加法平滑也叫做拉普拉斯平滑。 假定訓(xùn)練樣本很大時(shí),每個(gè)分量x的計(jì)數(shù)加1造成的估計(jì)概率變化可以忽略不計(jì),但可以方便有效的避免零概率問(wèn)題。 對(duì)應(yīng)到文本分類(lèi)的場(chǎng)景中,如果使用多項(xiàng)式樸素貝葉斯,假定特征表示某個(gè)詞在樣本中出現(xiàn)的次數(shù)(當(dāng)然用TF-IDF表示也可以)。拉普拉斯平滑處理后的條件概率計(jì)算公式為: ![]()
|
|
來(lái)自: taotao_2016 > 《概率》