樸素貝葉斯分類

因爲最近在用到貝葉斯網絡,在學習貝葉斯網絡之前只好先了解下樸素貝葉斯分類了。我在這裏把我瞭解的信息總結一下:
1)貝葉斯分類用的就是貝葉斯定理,這個定理比較簡單,但是太實用了。公式如下:
P(A|B)=P(B|A)P(A)P(B)
2)在很多時候,我們只能獲取到P(B|A)P(A) ,但是 實在是想求P(A|B) ,那麼就可以使用這個貝葉斯定理了。
3)那麼什麼是貝葉斯分類?假定我們有A1,A2,,An ,那麼分別計算出來了P(Ai|B),i=1,2,,n ,那個P 最大,那麼B 就是什麼類別的。通俗的所貝葉斯分類,就是使用貝葉斯定理來進行分類的。
4)在使用的時候,其實還是需要很多假設,但是憑空的來說,意義不大,我們這裏給出一個例子,來展示下如何使用。

特別聲明,這個例子是我胡編亂造的哈,不是真實的數據,只是爲了知道怎麼來用。

假定給了一大10000個水果,有西瓜(用C=0表示)5500個和香蕉(C=1表示)4500個,對每一個水果分別進行了如下特徵的提取:
顏色(a1表示,綠色爲0,黃色爲1)
重量(a2表示,分別有>0.5kg和<0.5kg)
粗細(a3表示,粗爲0,細爲1)

給了一個綠色的重量在<0.5kg的細的水果,你猜測下最有可能是什麼?

解題的過程如下:
1)分別計算每個類別的概率
P(C=0)=550010000=0.55
p(C=1)=0.45

2)分別計算每個類別下每個特徵的概率
P(a1=0|C=0)=0.9
P(a1=1|C=0)=0.1
P(a2>0.5|C=0)=0.7
P(a2<0.5|C=0)=0.3
P(a3=0|C=0)=0.8
P(a3=1|C=0)=0.2

P(a1=0|C=1)=0.2
P(a1=1|C=1)=0.8
P(a2>0.5|C=1)=0.1
P(a2<0.5|C=1)=0.9
P(a3=0|C=1)=0.3
P(a3=1|C=1)=0.7

3)計算當前水果分別是西瓜和香蕉的概率,假定當前待檢測的水果(記錄爲F)是綠色(a1=0)、<0.5kg(a2<0.5)、以及細的(a3=1)
P(C|F)=P(F|C)P(C)P(F)
因爲對於當前檢測水果來說它的概率是一定的,也就是個常數,所以只需要考慮分子就可以了。也就是:
P(F|C)P(C)=P(a1=0,a2<0.5,a3=1|C)P(C)
在計算P(a1=0,a2<0.5,a3=1|C) 的時候,我們給了一個假設就是說這些特徵(a1,a2,a3)都是獨立的,那麼我們就可以這樣計算了:
P(a1=0,a2<0.5,a3=1|C)=P(a1=0|C)P(a2<0.5|C)P(a3=1|C)

那麼接下來就是計算了:

P(F|C=0)P(C=0)=P(a1=0|C=0)P(a2<0.5|C=0)P(a3=1|C=0)P(C=0)=0.90.30.20.55=0.0297

P(F|C=1)P(C=1)=P(a1=0|C=1)P(a2<0.5|C=1)P(a3=1|C=1)P(C=1)=0.20.90.70.45=0.0567

此時我們可以知道,這個水果非常有可能屬於香蕉。
這就完成了一個貝葉斯分類的全過程。值得一提的是,在這個例子中所有的特徵都是離散的,那麼根據頻率就可以直接計算出來,但是如果特徵是連續的咋辦?一般我們都假設了是符合高斯分佈的,用高斯分佈函數來計算出來概率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章