1文本分類過程
例如文檔:Good good study Day day up可以用一個文本特征向量來表示,x=(Good, good, study, Day, day , up)。在文本分類中,假設我們有一個文檔d∈X,類別c又稱為標簽。我們把一堆打了標簽的文檔集合<d,c>作為訓練樣本,<d,c>∈X×C。例如:<d,c>={Beijing joins the World Trade Organization, China}對於這個只有一句話的文檔,我們把它歸類到 China,即打上china標簽。
朴素貝葉斯分類器是一種有監督學習,常見有兩種模型,多項式模型(multinomial model)即為詞頻型和伯努利模型(Bernoulli model)即文檔型。二者的計算粒度不一樣,多項式模型以單詞為粒度,伯努利模型以文件為粒度,因此二者的先驗概率和類條件概率的計算方法都不同。計算后驗概率時,對於一個文檔d,多項式模型中,只有在d中出現過的單詞,才會參與后驗概率計算,伯努利模型中,沒有在d中出現,但是在全局單詞表中出現的單詞,也會參與計算,不過是作為“反方”參與的。這里暫不考慮特征抽取、為避免消除測試文檔時類條件概率中有為0現象而做的取對數等問題。
1.1多項式模型
1)基本原理
在多項式模型中, 設某文檔d=(t1,t2,…,tk),tk是該文檔中出現過的單詞,允許重復,則
先驗概率P(c)= 類c下單詞總數/整個訓練樣本的單詞總數
類條件概率P(tk|c)=(類c下單詞tk在各個文檔中出現過的次數之和+1)/(類c下單詞總數+|V|)
V是訓練樣本的單詞表(即抽取單詞,單詞出現多次,只算一個),|V|則表示訓練樣本包含多少種單詞。 P(tk|c)可以看作是單詞tk在證明d屬於類c上提供了多大的證據,而P(c)則可以認為是類別c在整體上占多大比例(有多大可能性)。
2)舉例
給定一組分好類的文本訓練數據,如下:
| docId |
doc |
類別 In c=China? |
| 1 |
Chinese Beijing Chinese |
yes |
| 2 |
Chinese Chinese Shanghai |
yes |
| 3 |
Chinese Macao |
yes |
| 4 |
Tokyo Japan Chinese |
no |
給定一個新樣本Chinese Chinese Chinese Tokyo Japan,對其進行分類。該文本用屬性向量表示為d=(Chinese, Chinese, Chinese, Tokyo, Japan),類別集合為Y={yes, no}。
類yes下總共有8個單詞,類no下總共有3個單詞,訓練樣本單詞總數為11,因此P(yes)=8/11, P(no)=3/11。類條件概率計算如下:
P(Chinese | yes)=(5+1)/(8+6)=6/14=3/7
P(Japan | yes)=P(Tokyo | yes)= (0+1)/(8+6)=1/14
P(Chinese|no)=(1+1)/(3+6)=2/9
P(Japan|no)=P(Tokyo| no) =(1+1)/(3+6)=2/9
分母中的8,是指yes類別下textc的長度,也即訓練樣本的單詞總數,6是指訓練樣本有Chinese,Beijing,Shanghai, Macao, Tokyo, Japan 共6個單詞,3是指no類下共有3個單詞。
有了以上類條件概率,開始計算后驗概率:
P(yes | d)=(3/7)3×1/14×1/14×8/11=108/184877≈0.00058417
P(no | d)= (2/9)3×2/9×2/9×3/11=32/216513≈0.00014780
比較大小,即可知道這個文檔屬於類別china。
1.2伯努利模型
1)基本原理
P(c)= 類c下文件總數/整個訓練樣本的文件總數
P(tk|c)=(類c下包含單詞tk的文件數+1)/(類c下單詞總數+2)
2)舉例
使用前面例子中的數據,模型換成伯努利模型。
類yes下總共有3個文件,類no下有1個文件,訓練樣本文件總數為11,因此P(yes)=3/4, P(Chinese | yes)=(3+1)/(3+2)=4/5,條件概率如下:
P(Japan | yes)=P(Tokyo | yes)=(0+1)/(3+2)=1/5
P(Beijing | yes)= P(Macao|yes)= P(Shanghai |yes)=(1+1)/(3+2)=2/5
P(Chinese|no)=(1+1)/(1+2)=2/3
P(Japan|no)=P(Tokyo| no) =(1+1)/(1+2)=2/3
P(Beijing| no)= P(Macao| no)= P(Shanghai | no)=(0+1)/(1+2)=1/3
有了以上類條件概率,開始計算后驗概率,
P(yes|d)=P(yes)×P(Chinese|yes)×P(Japan|yes)×P(Tokyo|yes)×(1-P(Beijing|yes))×(1-P(Shanghai|yes))×(1-P(Macao|yes))=3/4×4/5×1/5×1/5×(1-2/5) ×(1-2/5)×(1-2/5)=81/15625≈0.005
P(no|d)= 1/4×2/3×2/3×2/3×(1-1/3)×(1-1/3)×(1-1/3)=16/729≈0.022
因此,這個文檔不屬於類別china。
后記:文本分類是作為離散型數據的,以前糊塗是把連續型與離散型弄混一塊了,朴素貝葉斯用於很多方面,數據就會有連續和離散的,連續型時可用正態分布,還可用區間,將數據的各屬性分成幾個區間段進行概率計算,測試時看其屬性的值在哪個區間就用哪個條件概率。再有TF、TDIDF,這些只是描述事物屬性時的不同計算方法,例如文本分類時,可以用單詞在本文檔中出現的次數描述一個文檔,可以用出現還是沒出現即0和1來描述,還可以用單詞在本類文檔中出現的次數與這個單詞在剩余類出現的次數(降低此屬性對某類的重要性)相結合來表述。
