樸素貝葉斯分類

樸素貝葉斯很直觀,計(jì)算量也不大,在很多領(lǐng)域有廣泛的應(yīng)用择同,這里我們就對(duì)樸素貝葉斯算法原理做一個(gè)小結(jié)赁濒。

  1. 樸素貝葉斯相關(guān)的統(tǒng)計(jì)學(xué)知識(shí)

在了解樸素貝葉斯的算法之前轨奄,我們需要對(duì)相關(guān)必須的統(tǒng)計(jì)學(xué)知識(shí)做一個(gè)回顧。

貝葉斯學(xué)派很古老拒炎,但是從誕生到一百年前一直不是主流挪拟。主流是頻率學(xué)派。頻率學(xué)派的權(quán)威皮爾遜和費(fèi)歇爾都對(duì)貝葉斯學(xué)派不屑一顧击你,但是貝葉斯學(xué)派硬是憑借在現(xiàn)代特定領(lǐng)域的出色應(yīng)用表現(xiàn)為自己贏得了半壁江山玉组。

貝葉斯學(xué)派的思想可以概括為先驗(yàn)概率+數(shù)據(jù)=后驗(yàn)概率。也就是說我們?cè)趯?shí)際問題中需要得到的后驗(yàn)概率丁侄,可以通過先驗(yàn)概率和數(shù)據(jù)一起綜合得到惯雳。數(shù)據(jù)大家好理解,被頻率學(xué)派攻擊的是先驗(yàn)概率鸿摇,一般來說先驗(yàn)概率就是我們對(duì)于數(shù)據(jù)所在領(lǐng)域的歷史經(jīng)驗(yàn)石景,但是這個(gè)經(jīng)驗(yàn)常常難以量化或者模型化,于是貝葉斯學(xué)派大膽的假設(shè)先驗(yàn)分布的模型户辱,比如正態(tài)分布鸵钝,beta分布等。這個(gè)假設(shè)一般沒有特定的依據(jù)庐镐,因此一直被頻率學(xué)派認(rèn)為很荒謬恩商。雖然難以從嚴(yán)密的數(shù)學(xué)邏輯里推出貝葉斯學(xué)派的邏輯,但是在很多實(shí)際應(yīng)用中必逆,貝葉斯理論很好用怠堪,比如垃圾郵件分類揽乱,文本分類。

我們先看看條件獨(dú)立公式粟矿,如果X和Y相互獨(dú)立凰棉,則有:

P(X,Y) =P(X)P(Y)

而條件概率公式:

P(Y|X) = P(X,Y)/P(X)

P(X|Y) = P(X,Y)/P(Y)

或者說:

P(Y|X) = P(X|Y)P(Y)/P(X)
那么,全概率公式:
P(X) = \sum\limits_{k}P(X|Y =Y_k)P(Y_k)
其中,\sum\limits_{k}P(Y_k)=1
從而陌粹,很容易得出貝葉斯公式:
P(Y_k|X) = \frac{P(X|Y_k)P(Y_k)}{\sum\limits_{k}P(X|Y =Y_k)P(Y_k)}

2.樸素貝葉斯的模型

從統(tǒng)計(jì)學(xué)知識(shí)回到我們的數(shù)據(jù)分析撒犀。假如我們的分類模型樣本是:(x_1^{(1)}, x_2^{(1)}, ...x_n^{(1)}, y_1), (x_1^{(2)}, x_2^{(2)}, ...x_n^{(2)},y_2), ... (x_1^{(m)}, x_2^{(m)}, ...x_n^{(m)}, y_n)

即我們有m個(gè)樣本,每個(gè)樣本有n個(gè)特征掏秩,特征輸出有K個(gè)類別或舞,定義為{C_1,C_2,...,C_K}

從樣本我們可以學(xué)習(xí)得到樸素貝葉斯的先驗(yàn)分布P(Y=C_k)(k=1,2,...K),接著學(xué)習(xí)到條件概率分布P(X=x|Y=C_k) = P(X_1=x_1, X_2=x_2,...X_n=x_n|Y=C_k),然后我們就可以用貝葉斯公式得到X和Y的聯(lián)合分布P(X,Y)了蒙幻。聯(lián)合分布P(X,Y)定義為:
P(X,Y=C_k) = P(Y=C_k)P(X=x|Y=C_k) = P(Y=C_k)P(X_1=x_1, X_2=x_2,...X_n=x_n|Y=C_k)

從上面的式子可以看出P(Y=C_k)比較容易通過最大似然法求出映凳,得到的P(Y=C_k)就是類別C_k在訓(xùn)練集里面出現(xiàn)的頻數(shù)。但是P(X_1=x_1, X_2=x_2,...X_n=x_n|Y=C_k)很難求出,這是一個(gè)超級(jí)復(fù)雜的有n個(gè)維度的條件分布邮破。樸素貝葉斯模型在這里做了一個(gè)大膽的假設(shè)诈豌,即X的n個(gè)維度之間相互獨(dú)立,這樣就可以得出:
P(X_1=x_1, X_2=x_2,...X_n=x_n|Y=C_k) = P(X_1=x_1|Y=C_k)P(X_2=x_2|Y=C_k)...P(X_n=x_n|Y=C_k)

從上式可以看出抒和,這個(gè)很難的條件分布大大的簡(jiǎn)化了矫渔,但是這也可能帶來預(yù)測(cè)的不準(zhǔn)確性。你會(huì)說如果我的特征之間非常不獨(dú)立怎么辦构诚?如果真是非常不獨(dú)立的話蚌斩,那就盡量不要使用樸素貝葉斯模型了铆惑,考慮使用其他的分類方法比較好范嘱。但是一般情況下,樣本的特征之間獨(dú)立這個(gè)條件的確是弱成立的员魏,尤其是數(shù)據(jù)量非常大的時(shí)候丑蛤。雖然我們犧牲了準(zhǔn)確性,但是得到的好處是模型的條件分布的計(jì)算大大簡(jiǎn)化了撕阎,這就是貝葉斯模型的選擇受裹。

最后回到我們要解決的問題,我們的問題是給定測(cè)試集的一個(gè)新樣本特征(x_1^{(test)}, x_2^{(test)}, ...x_n^{(test)}虏束,我們?nèi)绾闻袛嗨鼘儆谀膫€(gè)類型棉饶?

既然是貝葉斯模型,當(dāng)然是后驗(yàn)概率最大化來判斷分類了镇匀。我們只要計(jì)算出所有的K個(gè)條件概率P(Y=C_k|X=X^{(test)}),然后找出最大的條件概率對(duì)應(yīng)的類別照藻,這就是樸素貝葉斯的預(yù)測(cè)了。

  1. 樸素貝葉斯的推斷過程

上節(jié)我們已經(jīng)對(duì)樸素貝葉斯的模型也預(yù)測(cè)方法做了一個(gè)大概的解釋汗侵,這里我們對(duì)樸素貝葉斯的推斷過程做一個(gè)完整的詮釋過程幸缕。

我們預(yù)測(cè)的類別C_{result}是使P(Y=C_k|X=X^{(test)})最大化的類別群发,數(shù)學(xué)表達(dá)式為:
C_{result} = \underbrace{argmax}_{C_k}P(Y=C_k|X=X^{(test)}) = \underbrace{argmax}_{C_k}P(X=X^{(test)}|Y=C_k)P(Y=C_k)/P(X=X^{(test)})

由于對(duì)于所有的類別計(jì)算P(Y=C_k|X=X^{(test)})時(shí),上式的分母是一樣的发乔,都是P(X=X^{(test)}熟妓,因此,我們的預(yù)測(cè)公式可以簡(jiǎn)化為:
C_{result} = \underbrace{argmax}_{C_k}P(X=X^{(test)}|Y=C_k)P(Y=C_k)

接著我們利用樸素貝葉斯的獨(dú)立性假設(shè)栏尚,就可以得到通常意義上的樸素貝葉斯推斷公式:
C_{result} = \underbrace{argmax}_{C_k}P(Y=C_k)\prod_{j=1}^{n}P(X_j=X_j^{(test)}|Y=C_k)

  1. 樸素貝葉斯的參數(shù)估計(jì)

在上一節(jié)中起愈,我們知道只要求出P(Y=C_k)P(X_j=X_j^{(test)}|Y=C_k)(j=1,2,...n),我們通過比較就可以得到樸素貝葉斯的推斷結(jié)果译仗。這一節(jié)我們就討論怎么通過訓(xùn)練集計(jì)算這兩個(gè)概率告材。

對(duì)于P(Y=C_k)比較簡(jiǎn)單,通過極大似然估計(jì)我們很容易得到P(Y=C_k)為樣本類別C_k出現(xiàn)的頻率古劲,即樣本類別C_k出現(xiàn)的次數(shù)m_k除以樣本總數(shù)m斥赋。

對(duì)于P(X_j=X_j^{(test)}|Y=C_k)(j=1,2,...n),這個(gè)取決于我們的先驗(yàn)條件:
a) 如果我們的X_j是離散的值,那么我們可以假設(shè)X_j符合多項(xiàng)式分布产艾,這樣得到P(X_j=X_j^{(test)}|Y=C_k) 是在樣本類別C_k中疤剑,X_j^{(test)}出現(xiàn)的頻率。即:

P(X_j=X_j^{(test)}|Y=C_k) = \frac{m_{kj^{test}}}{m_k}

其中m_k為樣本類別C_k出現(xiàn)的次數(shù)闷堡,而m_{kj^{test}}為類別為C_k的樣本中隘膘,第j維特征X_j^{(test)}出現(xiàn)的次數(shù)。

某些時(shí)候杠览,可能某些類別在樣本中沒有出現(xiàn)弯菊,這樣可能導(dǎo)致P(X_j=X_j^{(test)}|Y=C_k)為0,這樣會(huì)影響后驗(yàn)的估計(jì)踱阿,為了解決這種情況管钳,我們引入了拉普拉斯平滑,即此時(shí)有:

P(X_j=X_j^{(test)}|Y=C_k) = \frac{m_{kj^{test}} + \lambda}{m_k + n\lambda}

其中\lambda 為一個(gè)大于0的常數(shù)软舌,常常取為1才漆。

b)如果我們我們的X_j是非常稀疏的離散值,即各個(gè)特征出現(xiàn)概率很低佛点,這時(shí)我們可以假設(shè)X_j符合伯努利分布醇滥,即特征X_j出現(xiàn)記為1,不出現(xiàn)記為0超营。即只要X_j出現(xiàn)即可鸳玩,我們不關(guān)注X_j的次數(shù)。這樣得到P(X_j=X_j^{(test)}|Y=C_k) 是在樣本類別C_k中演闭,X_j^{(test)}出現(xiàn)的頻率不跟。此時(shí)有:

P(X_j=X_j^{(test)}|Y=C_k) = P(j|Y=C_k)X_j^{(test)} + (1 - P(j|Y=C_k)(1-X_j^{(test)})

其中,X_j^{(test)}取值為0和1船响。

c)如果我們我們的X_j是連續(xù)值躬拢,我們通常取X_j的先驗(yàn)概率為正態(tài)分布躲履,即在樣本類別C_k中,X_j的值符合正態(tài)分布聊闯。這樣P(X_j=X_j^{(test)}|Y=C_k)的概率分布是:

P(X_j=X_j^{(test)}|Y=C_k) = \frac{1}{\sqrt{2\pi\sigma_k^2}}exp(-\frac{(X_j^{(test)} - \mu_k)^2}{2\sigma_k^2})

其中\mu_k\sigma_k^2是正態(tài)分布的期望和方差工猜,可以通過極大似然估計(jì)求得。\mu_k為在樣本類別C_k中菱蔬,所有X_j的平均值篷帅。\sigma_k^2為在樣本類別C_k中,所有X_j的方差拴泌。對(duì)于一個(gè)連續(xù)的樣本值魏身,帶入正態(tài)分布的公式,就可以求出概率分布了蚪腐。

  1. 樸素貝葉斯算法過程

我們假設(shè)訓(xùn)練集為m個(gè)樣本n個(gè)維度箭昵,如下:

(x_1^{(0)}, x_2^{(0)}, ...x_n^{(0)}, y_0), (x_1^{(1)}, x_2^{(1)}, ...x_n^{(1)},y_1), ... (x_1^{(m)}, x_2^{(m)}, ...x_n^{(m)}, y_n)

共有K個(gè)特征輸出類別,分別為{C_1,C_2,...,C_K},每個(gè)特征輸出類別的樣本個(gè)數(shù)為{m_1,m_2,...,m_K},在第k個(gè)類別中回季,如果是離散特征家制,則特征X_j各個(gè)類別取值為m_{jl}。其中l(wèi)取值為1,2,...S_j泡一,S_j為特征j不同的取值數(shù)颤殴。

輸出為實(shí)例X^{(test)}的分類。

算法流程如下:

  1. 如果沒有Y的先驗(yàn)概率鼻忠,則計(jì)算Y的K個(gè)先驗(yàn)概率:P(Y=C_k) = m_k/m涵但,否則P(Y=C_k)為輸入的先驗(yàn)概率。

  2. 分別計(jì)算第k個(gè)類別的第j維特征的第l個(gè)個(gè)取值條件概率:P(X_j=x_{jl}|Y=C_k)

a)如果是離散值:

P(X_j=x_{jl}|Y=C_k) = \frac{x_{jl} + \lambda}{m_k + n\lambda}

\lambda可以取值為1帖蔓,或者其他大于0的數(shù)字矮瘟。

b)如果是稀疏二項(xiàng)離散值:P(X_j=x_{jl}|Y=C_k) = P(j|Y=C_k)x_{jl} + (1 - P(j|Y=C_k)(1-x_{jl})

此時(shí)l只有兩種取值。

c)如果是連續(xù)值不需要計(jì)算各個(gè)l的取值概率讨阻,直接求正態(tài)分布的參數(shù):

P(X_j=x_j|Y=C_k) = \frac{1}{\sqrt{2\pi\sigma_k^2}}exp(-\frac{(x_j - \mu_k)^2}{2\sigma_k^2})

需要求出\mu_k\sigma_k^2芥永。 \mu_k為在樣本類別C_k中篡殷,所有X_j的平均值钝吮。\sigma_k^2為在樣本類別C_k中,所有X_j的方差板辽。

3)對(duì)于實(shí)例X^{(test)}奇瘦,分別計(jì)算:

P(Y=C_k)\prod_{j=1}^{n}P(X_j=x_j^{(test)}|Y=C_k)

4)確定實(shí)例X^{(test)}的分類C_{result}

C_{result} = \underbrace{argmax}_{C_k}P(Y=C_k)\prod_{j=1}^{n}P(X_j=X_j^{(test)}|Y=C_k)

從上面的計(jì)算可以看出,沒有復(fù)雜的求導(dǎo)和矩陣運(yùn)算劲弦,因此效率很高耳标。

  1. 樸素貝葉斯算法小結(jié)

樸素貝葉斯算法的主要原理基本已經(jīng)做了總結(jié),這里對(duì)樸素貝葉斯的優(yōu)缺點(diǎn)做一個(gè)總結(jié)邑跪。

樸素貝葉斯的主要優(yōu)點(diǎn)有:

1)樸素貝葉斯模型發(fā)源于古典數(shù)學(xué)理論次坡,有穩(wěn)定的分類效率呼猪。

2)對(duì)小規(guī)模的數(shù)據(jù)表現(xiàn)很好,能個(gè)處理多分類任務(wù)砸琅,適合增量式訓(xùn)練宋距,尤其是數(shù)據(jù)量超出內(nèi)存時(shí),我們可以一批批的去增量訓(xùn)練症脂。

3)對(duì)缺失數(shù)據(jù)不太敏感谚赎,算法也比較簡(jiǎn)單,常用于文本分類诱篷。

樸素貝葉斯的主要缺點(diǎn)有:

1) 理論上壶唤,樸素貝葉斯模型與其他分類方法相比具有最小的誤差率。但是實(shí)際上并非總是如此棕所,這是因?yàn)闃闼刎惾~斯模型假設(shè)屬性之間相互獨(dú)立闸盔,這個(gè)假設(shè)在實(shí)際應(yīng)用中往往是不成立的,在屬性個(gè)數(shù)比較多或者屬性之間相關(guān)性較大時(shí)琳省,分類效果不好蕾殴。而在屬性相關(guān)性較小時(shí),樸素貝葉斯性能最為良好岛啸。對(duì)于這一點(diǎn)钓觉,有半樸素貝葉斯之類的算法通過考慮部分關(guān)聯(lián)性適度改進(jìn)。

2)需要知道先驗(yàn)概率坚踩,且先驗(yàn)概率很多時(shí)候取決于假設(shè)荡灾,假設(shè)的模型可以有很多種,因此在某些時(shí)候會(huì)由于假設(shè)的先驗(yàn)?zāi)P偷脑驅(qū)е骂A(yù)測(cè)效果不佳瞬铸。

3)由于我們是通過先驗(yàn)和數(shù)據(jù)來決定后驗(yàn)的概率從而決定分類批幌,所以分類決策存在一定的錯(cuò)誤率。

4)對(duì)輸入數(shù)據(jù)的表達(dá)形式很敏感嗓节。

注:本文編輯轉(zhuǎn)載于云時(shí)之間荧缘,由于原文出現(xiàn)公式未在markdown環(huán)境下編輯,因此本文在其基礎(chǔ)上做一下簡(jiǎn)單改進(jìn)拦宣,對(duì)其工作表示衷心感謝截粗。
原文鏈接:http://www.reibang.com/p/163192c6a64e

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鸵隧,隨后出現(xiàn)的幾起案子绸罗,更是在濱河造成了極大的恐慌,老刑警劉巖豆瘫,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件珊蟀,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡外驱,警方通過查閱死者的電腦和手機(jī)育灸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門腻窒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人磅崭,你說我怎么就攤上這事定页。” “怎么了绽诚?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵典徊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我恩够,道長(zhǎng)卒落,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任蜂桶,我火速辦了婚禮儡毕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扑媚。我一直安慰自己腰湾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布疆股。 她就那樣靜靜地躺著费坊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旬痹。 梳的紋絲不亂的頭發(fā)上附井,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音两残,去河邊找鬼永毅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛人弓,可吹牛的內(nèi)容都是我干的沼死。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼崔赌,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼意蛀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起峰鄙,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤浸间,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后吟榴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡囊扳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年吩翻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了兜看。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狭瞎,死狀恐怖细移,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情熊锭,我是刑警寧澤弧轧,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站碗殷,受9級(jí)特大地震影響精绎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜锌妻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一代乃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧仿粹,春花似錦搁吓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至晌区,卻和暖如春贮预,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背契讲。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工仿吞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人捡偏。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓唤冈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親银伟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子你虹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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

  • 在所有的機(jī)器學(xué)習(xí)分類算法中,樸素貝葉斯和其他絕大多數(shù)的分類算法都不同彤避。對(duì)于大多數(shù)的分類算法傅物,比如決策樹,KNN,邏...
    云時(shí)之間閱讀 1,887評(píng)論 6 24
  • 樸素貝葉斯分類器 貝葉斯公式 聯(lián)合概率 $P(X=x, Y=y)$ 是指$X$ 取值為$x$ 且$Y$ 取值為$y...
    Black先森閱讀 487評(píng)論 0 0
  • 一文搞懂樸素貝葉斯分類 閱讀此文假設(shè)你已經(jīng)具備高中數(shù)學(xué)知識(shí) 什么是樸素貝葉斯 要搞懂樸素貝葉斯分類琉预,首先需要了解什...
    程序員Morgan閱讀 758評(píng)論 1 5
  • 一、實(shí)驗(yàn)?zāi)康?學(xué)習(xí)使用 weka 中的常用分類器,完成數(shù)據(jù)分類任務(wù)卒暂。 二啄栓、實(shí)驗(yàn)內(nèi)容 了解 weka 中 explo...
    yigoh閱讀 8,472評(píng)論 5 4
  • title: 樸素貝葉斯分類算法date: 2016-10-07 19:30:29comments: trueca...
    數(shù)據(jù)挖掘小菜閱讀 1,142評(píng)論 2 2