樸素貝葉斯以及三種常見(jiàn)模型推導(dǎo)

求關(guān)注,一起學(xué)習(xí)成長(zhǎng)

樸素貝葉斯

在機(jī)器學(xué)習(xí)中,樸素貝葉斯分類器是一系列以假設(shè)特征之間強(qiáng)(樸素)獨(dú)立下運(yùn)用貝葉斯定理為基礎(chǔ)的簡(jiǎn)單概率分類器。

樸素貝葉斯算法Naive Bayes定義中有兩個(gè)關(guān)鍵定義:特征之間強(qiáng)假設(shè)獨(dú)立和貝葉斯定理.這兩個(gè)定義就是樸素貝葉斯的關(guān)鍵.接下來(lái)先了解一下這兩個(gè)定義.

貝葉斯定理

貝葉斯定義是概率論中的一個(gè)定理,它跟隨機(jī)變量的條件概率以及邊緣概率分布有關(guān).

通常,事件A在事件B(發(fā)生)的條件下的概率,與事件B在事件A(發(fā)生)的條件下的概率是不一樣的,然而,這兩者之間是有確定的關(guān)系的,貝葉斯定理就是這種關(guān)系的陳述。貝葉斯公式的一個(gè)用途在于通過(guò)已知的三個(gè)概率函數(shù)推出第四個(gè).

直接給出公式:

P(A|B) = \frac{P(B|A)P(A)}{P(B)}

其中,P(A|B)是指事件B發(fā)生的情況下事件A發(fā)生的概率(條件概率).在貝葉斯定理中,每個(gè)名詞都有約定俗成的名稱:

  • P(A|B)是已知B發(fā)生后A的條件概率,也由于得知B的取值而被稱作A的后驗(yàn)概率;
  • P(A)是A的先驗(yàn)概率(或邊緣概率).之所以稱為"先驗(yàn)"是因?yàn)樗豢紤]任何B方面的因素;
  • P(B|A)是已知A發(fā)生后B的條件概率,也由于得知A的取值而成稱作B的后驗(yàn)概率;
  • P(B)是B的先驗(yàn)概率(或邊緣概率).

按這些術(shù)語(yǔ),貝葉斯定理可以表述為:

后驗(yàn)概率 = (似然性 * 先驗(yàn)概率)/標(biāo)準(zhǔn)化常量

也就是說(shuō),后驗(yàn)概率與先驗(yàn)概率和相似度的乘積成正比.

同時(shí),分母P(B),可以根據(jù)全概率公式分解為:

P(B)=\sum_{i=1}^nP(Ai)P(B|Ai)

條件獨(dú)立性假設(shè)

如果P(X,Y|Z)=P(X|Z)P(Y|Z),或等價(jià)地P(X|Y,Z)=P(X|Z),則稱事件X,Y對(duì)于給定事件Z是條件獨(dú)立的,也就是說(shuō),當(dāng)Z發(fā)生時(shí),X發(fā)生與否與Y發(fā)生與否是無(wú)關(guān)的。

應(yīng)用在自然語(yǔ)言處理中,就是說(shuō)在文章類別確定的條件下,文章的各個(gè)特征(單詞)在類別確定的條件下是獨(dú)立的,并不相關(guān),用通俗的話說(shuō),在文章類別確定的條件下,文章各個(gè)詞之間出現(xiàn)與否沒(méi)有相關(guān)性(事實(shí)上,并不成立).這是一個(gè)非常強(qiáng)的假設(shè),但對(duì)問(wèn)題的求解來(lái)說(shuō)變得更加簡(jiǎn)單.

樸素貝葉斯的概率模型

設(shè)輸入空間X \subseteq R^n為n為向量的集合,輸出空間為類標(biāo)記集合Y = {c_1,c_2,...,c_k}.輸入為特征向量x \in X,輸出為類標(biāo)記y \in Y. X是定義在輸入空間X上的隨機(jī)變量,Y是定義在輸出空間Y上的隨機(jī)變量.P(X,Y)是X和Y的聯(lián)合概率分布.訓(xùn)練數(shù)據(jù)集:

T = \{(x_1,y_1), (x_2,y_2),...,(x_N,y_N)\}

由P(X,Y)獨(dú)立同分布產(chǎn)生.因此樸素貝葉斯模型也是一個(gè)生成模型.

樸素貝葉斯算法通過(guò)訓(xùn)練集學(xué)習(xí)聯(lián)合概率分布P(X,Y),具體地,學(xué)習(xí)先驗(yàn)概率分布以及條件概率分布.其中先驗(yàn)概率分布

P(Y=c_k), k=1,2,...,K

條件概率分布

P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},...,X^{(n)}=x^{(n)}|Y=c_k), k=1,2,...,K

通過(guò)兩個(gè)概率得到聯(lián)合概率分布P(X,Y) = P(X|Y)P(Y).

條件概率分布P(X=x|Y=c_k)有指數(shù)級(jí)數(shù)量的參數(shù),其估計(jì)實(shí)際上不可行的.假設(shè)x^{(j)}S_j個(gè)取值,j=1,2,...,n,Y有K個(gè)取值,那么參數(shù)個(gè)數(shù)為K\prod_{j=1}^n S_j.

指數(shù)級(jí)的參數(shù)估計(jì)事實(shí)上并不可行,因此樸素貝葉斯算法針對(duì)各個(gè)特征之間做了假設(shè),也就是對(duì)條件概率分布作了條件獨(dú)立性假設(shè),這是一個(gè)很強(qiáng)的假設(shè),通過(guò)這個(gè)假設(shè),我們的參數(shù)求解變得可行,這也就是樸素貝葉斯的"樸素"的由來(lái).這種情況下,我們同樣假設(shè)x^{(j)}S_j個(gè)取值,j=1,2,...,n,Y有K個(gè)取值,那么參數(shù)個(gè)數(shù)為K\sum_{i=1}^nS_j,需要估計(jì)的參數(shù)量大大減少.條件獨(dú)立性假設(shè)是

P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},...,X^{(n)}=x^{(n)}|Y=c_k) \\=\prod_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)

樸素貝葉斯算法分類時(shí),對(duì)給定輸入x,通過(guò)學(xué)習(xí)到的模型計(jì)算后驗(yàn)概率分布P(Y=c_k|X=x),將后驗(yàn)概率最大的類作為輸入x的類輸出.后驗(yàn)概率根據(jù)貝葉斯定理計(jì)算:

P(Y=c_k|X=x)=\frac{P(Y=c_k)P(X=x|Y=c_k)}{\sum_k P(X=x|Y=c_k)P(Y=c_k)}\\ =\frac{P(Y=c_k)\prod_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum_k P(Y=c_k)\prod_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)}

上面的公式是后驗(yàn)概率分布中的一項(xiàng),由于對(duì)于相同輸入x下不同類別的后驗(yàn)概率的分母都相同,而最終的類輸出是后驗(yàn)概率分布中概率最大對(duì)應(yīng)的類別,所以我們可以簡(jiǎn)化為只比較分子的大小就可以確定最終的結(jié)果,也就是說(shuō),最終類輸出為:

y=arg max_{c_k}P(Y=c_k)\prod_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k).

如果我們對(duì)右邊的乘積概率取log,連乘積就可以轉(zhuǎn)換成為和,計(jì)算更簡(jiǎn)單(加法總比乘法簡(jiǎn)單),上訴公式存在一種變種:

y=arg max_{c_k} logP(Y=c_k) + \sum_{j=1}^n logP(X^{(j)}=x^{(j)}|Y=c_k).

同時(shí)這種形式,也可以看做是一種線性回歸,權(quán)重系數(shù)為1.

介紹完,樸素貝葉斯的概率模型之后,我們目前的主要問(wèn)題就集中在如何估計(jì)這個(gè)模型的K\sum_{i=1}^nS_j個(gè)參數(shù):P(Y=c_k),P(X^{(j)}=x^{(j)}|Y=c_k),估算出參數(shù),我們就可以對(duì)輸入向量x做預(yù)測(cè).針對(duì)這些參數(shù)的求解方法不同,存在不同的樸素貝葉斯類型,具體介紹三種:伯努利樸素貝葉斯,多項(xiàng)式樸素貝葉斯和高斯樸素貝葉斯.不同類型的樸素貝葉斯對(duì)參數(shù)的求法不同,而根源在于對(duì)P條件概率(X=x|Y=c_k)的假設(shè)分布不同,也就是說(shuō)在給定類別的情況下,對(duì)X假設(shè)的分布不同:伯努利假設(shè)是伯努利分布(其實(shí)應(yīng)該是多變量伯努利分布),多項(xiàng)式假設(shè)是多項(xiàng)式分布,而高斯也就是假設(shè)是高斯分布(其實(shí)是多變量高斯分布).然后,我們細(xì)化到三種不同類型的樸素貝葉斯理論中.

Bernoulli Naive Bayes 伯努利樸素貝葉斯

伯努利樸素貝葉斯,其實(shí)應(yīng)該叫"Multi-variate Naive Bayes",假設(shè)P(X=x|Y=c_k)是多變量伯努利分布.在了解多變量伯努利分布之前,先介紹一下什么是(單變量的)伯努利分布.

伯努利分布

伯努利分布,又叫做兩點(diǎn)分布或0-1分布,是一個(gè)離散型概率分布.稱隨機(jī)變量X有伯努利分布,參數(shù)為p(0< p <1),它分別以概率p和1-p取1和0為值.

最簡(jiǎn)單的例子就是拋硬幣,硬幣結(jié)果為正或反.

P(X=x)=p^x (1-p)^{(1-x)}=px+(1-p)(1-x)

冪次運(yùn)算變成乘法運(yùn)算,更簡(jiǎn)單.當(dāng)x=1時(shí),概率是P(X=1)=p,當(dāng)x=0時(shí),概率P(X=0)=1-p,這樣就可以將兩種情況合在一起.

了解了什么是伯努利分布之后,我們?cè)倏词裁词嵌嘣植?多變量 multi-variate Bernoulli).

多元伯努利分布

多元伯努利分布,通俗的講就是同時(shí)進(jìn)行多個(gè)不同的伯努利實(shí)驗(yàn),P(X=x)=\theta,其中x是一個(gè)向量,\theta也是一個(gè)向量,表示不同伯努利實(shí)驗(yàn)的參數(shù).

伯努利多項(xiàng)式將文檔的生成模型P(X=x|Y=c_k)假設(shè)服從為多元伯努利分布,由于我們之前做的特征獨(dú)立性假設(shè),x=(x^{(1)},x^{(2)}=x^{(2)},...,^{(n)})是一個(gè)向量形式,而其中x^{(j)} \in \{0, 1\},也就是說(shuō)x向量是onehot形式的向量(每個(gè)維度值是0或1),表示這個(gè)維度的特征是否出現(xiàn).特征集F = \{f_1,f_2,...,f_n \}有n個(gè)特征,特征集的維度決定了輸入空間X的維度,而且特征集的維度可以對(duì)應(yīng)到輸入空間的各個(gè)維度上.

P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},…,X^{(n)}=x^{(n)}|Y=c_k)\\=\prod_{i=1}^{n} p(t_i|Y=c_k)x^i+(1-p(t_i|Y=c_k))(1-x^i)

因?yàn)樘卣髦g的獨(dú)立性,所以多元伯努利變成各個(gè)伯努利分布的連乘積,需要注意的一點(diǎn)是因?yàn)槭遣植?0-1,特征出現(xiàn)有一個(gè)概率p,特征不出現(xiàn)也有一個(gè)概率1-p.最終模型的參數(shù)估計(jì)完成之后,對(duì)新樣本進(jìn)行預(yù)測(cè)時(shí),如果某個(gè)特征不出現(xiàn),需要乘上這個(gè)特征不出現(xiàn)的概率,不能只計(jì)算特征出現(xiàn)的概率!!!兩個(gè)向量直接相乘,并不能得到最終的結(jié)果.

對(duì)應(yīng)的伯努利樸素貝葉斯模型為:

P(Y=c_k|X=x)=\frac{P(Y=c_k)P(X=x|Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)}\\=\frac{P(Y=c_k)\prod_{j=1}^n p(t_j|Y=c_k)x^j+(1-p(t_j|Y=c_k))(1-x^j)}{\sum_k P(Y=c_k)\prod_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)}

為了簡(jiǎn)化運(yùn)算,我們可以將分母忽略,雖然對(duì)應(yīng)的結(jié)果不是真正的概率,但是相同樣本的各個(gè)后驗(yàn)概率之間的大小關(guān)系保持不變,同時(shí)如果兩邊同時(shí)做log運(yùn)算,后驗(yàn)概率之間的大小關(guān)系同樣保持不變.因此,

y=arg max_{c_k} P(Y=c_k)\prod_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k) \\ =arg max_{c_k} logP(Y=c_k)+\sum_{j=1}^nlogP(X^{(j)}=x^{(j)}|Y=c_k).

了解了多元伯努利分布之后,接下來(lái)的工作就是對(duì)參數(shù)進(jìn)行估計(jì),計(jì)算P(x^i|Y=c_k),P(Y=c_k).

參數(shù)估計(jì)

參數(shù)估計(jì)的過(guò)程也是樸素貝葉斯分類器學(xué)習(xí)的過(guò)程.而參數(shù)估計(jì)可以使用極大似然估計(jì).先驗(yàn)概率P(Y=c_k)的極大似然估計(jì)是

P(Y=c_k)=\frac{\sum_{i=1}^N I(y_i = c_k)}{N}, k=1,2,...,K

其中,I(x)是一個(gè)指示函數(shù),如果x為真,I(x)結(jié)果為1,如果x為假,I(x)=0.用語(yǔ)言描述來(lái)說(shuō),P(Y=c_k)這個(gè)概率等于在N個(gè)樣本的數(shù)據(jù)集中,類別為c_k的樣本所占的比例.

條件概率P(X^{(i)}=x^{(i)}|Y=c_k)的極大似然估計(jì)是:

P(X^i=x^i|Y=c_k) = \frac{\sum_{i=1}^N I(X^i=x^i, y_i=c_k)}{\sum_{i=1}^N I(y_i=c_k)}

用語(yǔ)言描述來(lái)說(shuō),條件概率P(X^i=x^i|Y=c_k)等于在類別為c_k的樣本集合(數(shù)據(jù)集的子集)中,第i個(gè)特征等于x_i的概率,x^i是0或1,而且P(X^i=x^i|Y=c_k)服從伯努利分布,所以只需要計(jì)算一個(gè),比如P(X^i=1|Y=c_k),P(X^i=0|Y=c_k) = 1 - P(X^i=1|Y=c_k),因?yàn)閮蓚€(gè)概率和為1(這是同一個(gè)變量).

這些參數(shù)估計(jì)完之后,樸素貝葉斯就完成了學(xué)習(xí)過(guò)程,接下來(lái)就可以使用它去進(jìn)行預(yù)測(cè)了(應(yīng)用才是最終的目的).

0概率處理

由于P(X^i=x^i|Y=c_k)是伯努利分布,參數(shù)p在[0,1]之間,有可能存在P(X^i=x^i|Y=c_k) = 0,也就是存在0概率.

舉例來(lái)說(shuō),在當(dāng)前類別下的所有樣本中特征i都出現(xiàn)了(=1),根據(jù)上面的條件概率極大似然估計(jì),可以知道P(X^i=1|Y=c_k) = 1,那么對(duì)應(yīng)的,P(X^i=0|Y=c_k) = 0,那么當(dāng)新樣本來(lái)的時(shí)候,加入存在一條記錄x,它很巧地沒(méi)有第i個(gè)特征(這不巧了嗎?不是),由于0概率的存在,那么使用上面的貝葉斯公式,就會(huì)出現(xiàn)屬于某個(gè)列別的概率為0,P(Y=c_k|X=x)=0.但這種情況是應(yīng)該避免的,那么如何避免呢?

我們?cè)趯?duì)條件概率進(jìn)行極大似然估計(jì)時(shí),針對(duì)分子和分母做一些小變動(dòng),

P(X^i=x^i|Y=c_k)=\frac{\alpha+\sum_{i=1}^NI(X^i=x^i,y_i=c_k)}{S_i\alpha+\sum_{i=1}^NI(y_i=c_k)} \\ =\frac{\alpha+\sum_{i=1}^NI(X^i=x^i,y_i=c_k)}{2\alpha+\sum_{i=1}^NI(y_i=c_k)}

其中,S_i表示第i個(gè)特征不同取值的個(gè)數(shù),由于這里是one-hot,取值為2,所以S_i = 2,\alpha乘以S_i是保證S_i個(gè)不同取值對(duì)應(yīng)的條件概率之和為1,不偏袒任意一種情況,一視同仁.

代碼實(shí)現(xiàn)

To Be Continued.

數(shù)學(xué)推導(dǎo)---矩陣形式,批量計(jì)算,高效快捷.

Multinomial Naive Bayes 多項(xiàng)式樸素貝葉斯

多項(xiàng)式樸素貝葉斯,假設(shè)P(X=x|Y=c_k)是多項(xiàng)式分布.在了解多項(xiàng)式樸素貝葉斯之前,先介紹一下什么是多項(xiàng)式分布?

多項(xiàng)式分布

將伯努利分布的單變量擴(kuò)展到d維向量\vec x,其中x_i \in {0,1},且\sum_{i=1}^d x_i =1,假設(shè)x_i=1的概率是\mu \in [0,1],并且\sum_{i=1}^d \mu_i=1,則將得到離散分布:

P(x|\mu)= \prod_{i=1}^d \mu_i^{x_i}.

其中x,\mu都是d維向量形式.在此的基礎(chǔ)上擴(kuò)展二項(xiàng)分布到多項(xiàng)式分布(Multinomial distribution),該分布描述的是在n次獨(dú)立實(shí)驗(yàn)中有m_ix_i=1的概率,其密度函數(shù)可以表達(dá)為如下形式:

p(m_1,m_2,...,m_d|n, \mu)=\frac{n!}{m_1!m_2!...m_d!} \prod_{i=1}^d \mu_i^{m_i}

多項(xiàng)式分布的期望,方差如下:
E(x)=n \mu_i

var(x)=n \mu_i(1-\mu_i)

多項(xiàng)式樸素貝葉斯

多項(xiàng)式分布應(yīng)用到樸素貝葉斯上,對(duì)于文檔分類問(wèn)題來(lái)說(shuō),假設(shè)給定文檔類型的基礎(chǔ)上文檔生成模型P(X=x|Y=c_k)是一個(gè)多項(xiàng)式分布.這樣對(duì)應(yīng)關(guān)系就是:

  • 文檔分類中的d維字典(d個(gè)特征)對(duì)應(yīng)于多項(xiàng)式分布中的向量的d個(gè)維度;
  • 文檔分類中,詞w_i出現(xiàn)與否,對(duì)應(yīng)于d維向量中x_i \in {0,1},兩種取值情況,且\sum_{i=1}^d x_i =1;
  • 文檔分類中,詞w_i出現(xiàn)的概率,對(duì)應(yīng)于離散分布中x_i=1的概率是\mu \in [0,1],并且\sum_{i=1}^d \mu_i=1;
  • 文檔分類中,給定類別下,對(duì)應(yīng)一次抽樣結(jié)果x(d維向量)的概率為:P(x|\mu)= \prod_{i=1}^d \mu_i^{x_i},因?yàn)槿绻粋€(gè)詞不出現(xiàn),即x_i=0,那么對(duì)應(yīng)\mu_i^0=1,所以P(x|\mu)可以簡(jiǎn)寫為P(x_i|\mu)=\mu_i;
  • n次獨(dú)立實(shí)驗(yàn)中有n_ix_i=1的概率,對(duì)應(yīng)到文檔模型中特征i(第i個(gè)詞)出現(xiàn)了n_i次,n次實(shí)驗(yàn)對(duì)應(yīng)到文檔模型中表示這篇文檔的長(zhǎng)度為n(一共有n個(gè)詞),對(duì)應(yīng)概率密度函數(shù)為:p(m_1,m_2,...,m_d|n, \mu)=\frac{n!}{m_1!m_2!...m_d!} \prod_{i=1}^d \mu_i^{m_i}
多項(xiàng)式分布 文檔模型
d維向量 d個(gè)維度,d個(gè)特征
x_i \in {0,1} 第i個(gè)詞出現(xiàn)與否
x_i=1的概率是\mu \in [0,1] 第i個(gè)詞出現(xiàn)的概率
P(x)= \prod_{i=1}^d \mu_i^{x_i} 給定類別下,一次抽樣結(jié)果的概率(一個(gè)詞)
n次實(shí)驗(yàn) 對(duì)應(yīng)長(zhǎng)度為n的文檔n次抽樣結(jié)果

需要注意的是,應(yīng)用在文本分類的多項(xiàng)式樸素貝葉斯模型之前,一般多項(xiàng)式條件概率如下:

P(X=x|Y=c_k)=P(X^1=x^1,X^2=x^2,...,X^d=x^d|Y=c_k) \\=P(|x|)\frac{n!}{x^1!x^2!...x^d!} \prod_{i=1}^d P(w_i|Y=c_k)^{x^i}

我們的多項(xiàng)式樸素貝葉斯概率模型為:

P(Y=c_k|X=x)=\frac{P(Y=c_k)\frac{n!}{x^1!x^2!...x^d!} \prod_{i=1}^d P(w_i|Y=c_k)^{x^i}}{P(X=x)}

這里為了方便,首先我們假設(shè)文章長(zhǎng)度和文章的類別之間沒(méi)有相關(guān)性(事實(shí)上也并不成立,比如說(shuō)相對(duì)較長(zhǎng)的郵件,相比垃圾郵件而言,正常郵件的概率更大),也就是說(shuō)P(|x|)的分布與文章所屬類別無(wú)關(guān).另一方面,由于最終所屬類別是后驗(yàn)概率最大對(duì)應(yīng)的類別,所以,我們可以將文章長(zhǎng)度P(|x|)建模的概率,忽略掉,就像我們之前忽略伯努利分布中的分母一樣.

P(X=x|Y=c_k) = P(X^1=x^1,X^2=x^2,...,X^d=x^d|Y=c_k)=\frac{n!}{x^1!x^2!...x^d!} \prod_{i=1}^d P(w_i|Y=c_k)^{x^i}

再者,為了更加方便,我們通常對(duì)兩邊取log運(yùn)算,將冪次運(yùn)算轉(zhuǎn)換成線性運(yùn)算:

logP(X=x|Y=c_k) = logP(X^1=x^1,X^2=x^2,...,X^d=x^d|Y=c_k)=\frac{n!}{x^1!x^2!...x^d!} \prod_{i=1}^d P(w_i|Y=c_k)^{x^i}

我們也可以將文章長(zhǎng)度階乘省略,然后變成:

y=arg max_{c_k} P(Y=c_k)P(X=x|Y=c_k))\\=arg max_{c_k} logP(Y=c_k)+\sum_{j=1}^d x^{(j)}logP(w_j|Y=c_k).

這樣就變成線性運(yùn)算,就和線性回歸一樣,運(yùn)算高效而簡(jiǎn)單.

將文檔模型對(duì)應(yīng)到多項(xiàng)式分布上得到多項(xiàng)式樸素貝葉斯,在我們對(duì)其做出假設(shè)分布之后,剩下的工作就是對(duì)假設(shè)分布下每個(gè)類別下的d個(gè)條件概率以及先驗(yàn)分布進(jìn)行估計(jì).此外,還需要說(shuō)明的一點(diǎn)是:多項(xiàng)式樸素貝葉斯模型采用詞袋模型,每個(gè)x_i表示第i個(gè)特征出現(xiàn)的次數(shù),也就是詞頻term-frequency,有時(shí)候也可以使用tf-idf作為值.

參數(shù)估計(jì)

參數(shù)估計(jì)的過(guò)程也是樸素貝葉斯分類器學(xué)習(xí)的過(guò)程.而參數(shù)估計(jì)可以使用極大似然估計(jì).先驗(yàn)概率P(Y=c_k)的極大似然估計(jì)是

P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N}, k=1,2,...,K

其中,I(x)是一個(gè)指示函數(shù),如果x為真,I(x)結(jié)果為1,如果x為假,I(x)=0.用語(yǔ)言描述來(lái)說(shuō),P(Y=c_k)這個(gè)概率等于在N個(gè)樣本的數(shù)據(jù)集中,類別為c_k的樣本所占的比例.

條件概率P(w_t|Y=c_k)的極大似然估計(jì)是:

P(w_t|Y=c_k)=\frac{\sum_{i=1}^N I(w_t=1,y_i=c_k)x_i^{(t)}}{\sum_{i=1}^N \sum_{s=1}^d I(w_s=1,y_i=c_k)x_i^{(s)}}

用語(yǔ)言描述來(lái)說(shuō),條件概率P(w_t|Y=c_k)等于在類別為c_k的樣本集合(數(shù)據(jù)集的子集)中,第t個(gè)特征出現(xiàn)的概率等于c_k類樣本第t個(gè)特征出現(xiàn)的總次數(shù)(考慮詞頻,不再是0,1)占c_k類樣本的總詞數(shù)(文章長(zhǎng)度之和,文章單詞特征是固定的,考慮了詞頻)的比例.

為了方便理解,將N_{t,k}表示為第k類樣本集合中第t個(gè)特征出現(xiàn)的總次數(shù),N_k表示為在所有樣本中第k類樣本的總詞數(shù)(第k類樣本長(zhǎng)度之和,考慮頻數(shù)),簡(jiǎn)寫成:

P(w_t|Y=c_k)=\frac{N_{t,k}}{N_k}

需要注意的是,\sum_t P(w_t|Y=c_k)=1,意思是給定分類下,各個(gè)維度的概率之和為1,在文章分類中,就是給定文章分類的情況下,各個(gè)詞出現(xiàn)的條件概率之和為1,和每個(gè)詞出現(xiàn)多少詞沒(méi)有關(guān)系.

0概率處理

和伯努利樸素貝葉斯模型類似,有可能存在某一維度,數(shù)據(jù)集在這一維度上都是0,對(duì)應(yīng)到文檔分類上,就是這個(gè)詞在所有文章中都沒(méi)有出現(xiàn)過(guò)(詞典選的不好,特征選擇不好),這種情況就會(huì)出現(xiàn)0概率.所以我們需要對(duì)條件概率做一點(diǎn)小改動(dòng):

P(w_t|Y=c_k)=\frac{\alpha + N_{t,k}}{d*\alpha + N_k}

其中,d表示數(shù)據(jù)維度為d(有d個(gè)特征,每個(gè)特征都加\alpha,保證概率和為1,\alpha需要乘d).當(dāng)\alpha=1時(shí),叫做Laplace Smoonthing拉普拉斯平滑,當(dāng)然\alpha也可以小于1.

代碼實(shí)現(xiàn)

To Be Continued

Gaussian Naive Bayes 高斯樸素貝葉斯

高斯樸素貝葉斯,假設(shè)P(X=x|Y=c_k)是多元高斯分布.在了解高斯樸素貝葉斯之前,先介紹一下什么是高斯分布,什么是多元高斯分布?

高斯分布

高斯分布又稱正態(tài)分布,在實(shí)際應(yīng)用中最為廣泛。對(duì)于單變量x \in(?\infty,+\infty),高斯分布的參數(shù)有兩個(gè),分別是均值\mu \in (?\infty,+\infty)和方差\sigma^2>0,其概率密度函數(shù)為

N(x|\mu,\sigma^2)=\frac1{\sqrt{2\pi}\sigma}exp\{-\frac{(x-\mu)^2}{2\sigma^2}\}

多元高斯分布

image

其中,\mu是D維均值向量,\sum是DxD的協(xié)方差矩陣,|\sum|\sum的行列式.多元高斯分布的期望是\mu,方差是\sum

特殊的,如果D個(gè)維度之間相互獨(dú)立,那么多元高斯分布就可以表示成單元高斯分布概率密度函數(shù)的連乘積.

高斯樸素貝葉斯

高斯樸素貝葉斯模型是假設(shè)條件概率P(X=x|Y=c_k)是多元高斯分布,另一方面,由之前的特征的條件獨(dú)立性假設(shè),我們就可以通過(guò)對(duì)每個(gè)特征的條件概率建模,每個(gè)特征的條件概率N(\mu_t,\sigma_t^2)也服從高斯分布.

c類下第i個(gè)詞對(duì)應(yīng)的高斯分布為:

g(x_i;\mu_{i,c},\sigma_{i,c})=\frac1{\sigma_{i,c}\sqrt{2\pi}}exp\{-\frac{(x_i-\mu_{i,c})^2}{2\sigma_{i,c}^2}\}

其中,\mu_{i,c},\sigma_{i,c}^2表示c類下第i個(gè)特征的均值和方差.

由于特征之間的獨(dú)立性假設(shè),我們可以得到條件概率:

P(X=x|Y=c)=\prod_{i=1}^d g(x_i;\mu_{i,c},\sigma_{i,c})

一共有d個(gè)特征.

高斯樸素貝葉斯變成:

P(Y=c_k|X=x)=\frac{P(Y=c_k)P(X=x|Y=c_k)}{\sum_k P(X=x|Y=c_k)P(Y=c_k)}\propto P(Y=c_k)P(X=x|Y=c_k)

y=arg max_{c_k} P(Y=c_k)P(X=x|Y=c_k).

了解了多元高斯分布分布之后,接下來(lái)的工作就是對(duì)參數(shù)進(jìn)行估計(jì),計(jì)算\mu_{i,c}\sigma_{i,c}.

參數(shù)估計(jì)

先驗(yàn)概率和之前的估算方法相同,不再描述.主要是對(duì)高斯分布的均值和方差的估計(jì),采用的方法仍然是極大似然估計(jì).

均值的估計(jì)\mu_{i,c}是在樣本類別c中,所有X_i的平均值;

方差的估計(jì)\sigma_{i,k}^2為樣本類別c中所有X_i的方差.

對(duì)于一個(gè)連續(xù)的樣本值,帶入高斯分布,就可以求出它的概率分布了.

所有參數(shù)估計(jì)完成之后,就可以計(jì)算給定樣本的條件概率P(X=x|Y=c_k),進(jìn)而可以計(jì)算P(Y=c_k)P(X=x|Y=c_k),之后就可以確定樣本類別,完成模型預(yù)測(cè).

Reference

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評(píng)論 6 535
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,740評(píng)論 3 420
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,856評(píng)論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,175評(píng)論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,931評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,321評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評(píng)論 3 443
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,533評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,082評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,891評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,067評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,319評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,732評(píng)論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,987評(píng)論 1 289
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,794評(píng)論 3 394
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,076評(píng)論 2 375

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

  • 忘光了概率統(tǒng)計(jì)的知識(shí)還想學(xué)樸素貝葉斯算法?這一篇就是為你準(zhǔn)備的。雖然如此,作為初學(xué)者,別指望 5 分鐘就能完全理解...
    kamidox閱讀 2,730評(píng)論 4 7
  • 【博客的主要內(nèi)容主要是自己的學(xué)習(xí)筆記,并結(jié)合個(gè)人的理解,供各位在學(xué)習(xí)過(guò)程中參考,若有疑問(wèn),歡迎提出;若有侵權(quán),請(qǐng)告...
    Paullu閱讀 2,272評(píng)論 0 11
  • 在所有的機(jī)器學(xué)習(xí)分類算法中,樸素貝葉斯和其他絕大多數(shù)的分類算法都不同。對(duì)于大多數(shù)的分類算法,比如決策樹(shù),KNN,邏...
    云時(shí)之間閱讀 1,904評(píng)論 6 24
  • 引子: 1、孩子的性別問(wèn)題 已知一對(duì)夫妻生了2個(gè)孩子,其中一個(gè)是女孩,那么另一個(gè)也是女孩的概率的多少?普遍大家會(huì)覺(jué)...
    白爾摩斯閱讀 4,849評(píng)論 0 18
  • 最近愛(ài)上了在廚房折騰的感覺(jué)。喜歡在進(jìn)廚房之前翻翻手機(jī)軟件上的菜譜,頭腦回想著家里有的菜品。 自己親手煮著自己很想嘗...
    維他西柚閱讀 194評(píng)論 0 1