--樸素貝葉斯(一)

  一 簡介
樸素貝葉斯是基於概率論的一種分類方法,或者說是基於貝葉斯定理與特徵條件獨立假設的分類方法.該方法是用於分類問題,現實生活中用於病人的診斷,不當言論的分類等.由於其實現方法簡單,計算效率高,所以應用還是比較廣泛的.
  二 概率模型
樸素貝葉斯就是一個概率模型, 再分類的過程中, 我們會計算這個樣本屬於每一個類別的概率, 然後求出其中的最大值, 最大值所對應的概率就是我們所確定的類.
  2.1 概率公式
首先我們來看條件概率, 條件概率P(A|B), P(A|B)表示是在事件B發生的條件下, 條件A發生的概率.

P(A|B)=P(AB)P(B)

P(B|A)=P(AB)P(A)

也就可以得出P(A|B)P(B)=P(B|A)P(A) ,即可以推出
P(B|A)=P(A|B)P(B)P(A)

如果把A和B換成X和Y,是不是可以得到
P(Y|X)=P(Y)P(X|Y)P(X)
, X和Y將分別代表樣本的參數和樣本的類別, 來看一下下面這個大表格.
考過 逛街 打遊戲 學習
1 0 0 1
0 1 0 0
1 0 1 1
1 1 0 1
0 1 1 0
0 0 1 0

1代表考過, 逛街, 打遊戲,學習. 0代表沒考過,沒逛街,沒學習

這個表是說明是否考過和逛街,打遊戲,學習之間的關係.

  2.2 例子詳解
  這個表格很簡單, 但是他和樸素貝葉斯有什麼關係呢?那我們先來了解一下樸素是什麼, 樸素可以理解爲”無依無靠”, 沒有任何的”關係網”. 舉個例子, 一個樣本X由x1 ,x2 , x3 , x4 ,Y 組成. 我們暫且叫這些x爲屬性, Y爲類別,當一個樣本確定時, 我們假設它的屬性之間是沒有甚麼關係的, 這個假設很重要的. 因爲它爲我們節省了很多的計算量. 它的數學表達式爲:

P(X=x|Y=ck)=P(x1,x2,x3,x4|Y=ck)=P(x1|Y=ck)P(x2|Y=ck)P(x3|Y=ck)P(x4|Y=ck)

這就說明了以上各個屬性之間是條件獨立的.有了這樣一個條件我們就可以對一個新的樣本作出決策了, 讓我們看一下上面那個例子.根據表格中的數據我們先計算一些先驗概率:
P()=36 P()=36
P(|)=13 P(|)=23
P(|)=13 P(|)=23
P(|)=33 P(|)=03
P(|)=23 P(|)=13
P(|)=23 P(|)=13
P(|)=03 P(|)=33

計算考過及沒考過分別和三個屬性的先驗概率.
  當有一個新來的樣本,(逛街,打遊戲,學習),我們怎樣判斷他是否能考過呢?
  首先看(逛街,打遊戲,學習)這是甚麼, 這是不是上面的X, 也就是屬性啊. 我們判斷他是否能考過, 也就是計算他的Y是甚麼,對吧. 一句話總結就是, 在知道這個人的個人喜好(X)前提下去判斷他能否考過(Y), 這不就是讓我們計算條件概率P(Y|X)啊.

P(Y|X)=P(Y|x1,x2,x3)

P(Y|X)=P(XY)P(X)=P(Y)P(X|Y)P(X)=P(Y)P(x1,x2,x3|Y)P(X)=P(Y)P(x1|Y)P(x2|Y)P(x3|Y)P(X)

我們就是要把上式中的Y替換爲考過, X替換爲(逛街,打遊戲,學習)計算一下概率. 再把上式中的Y替換爲沒考過, X替換爲(逛街,打遊戲,學習)計算一下概率. 比較二者的大小, 就可以確定他是否能考過. 這是貝葉斯的關鍵.
這樣我們把原來求P(Y|X)這個後驗概率 轉換爲求X和Y的聯合概率, 再把聯合概率轉換爲先驗概率P(Y|X)*P(Y), 除了P(Y|X)之外, 其它的數據我們是不是都已經求出來了啊? 直接像裏面代數是不是就可以了. 當然是的啊. (注意我在公式中X和x1,x2,x3 的轉換).
請注意上面公式分母的P(X), P(X)=P(Y1|X)P(X)+P(Y2|X)P(X) , P(X)對於計算屬於哪一類都是這一個表達式, 所以分母都是一樣的, 我們只需要計算分子即可.
P(Y|X)=P(x|Y)P(x|Y)P(x|Y)P(Y)P(X)=13133312P(X)=118P(X)

P(Y|X)=P(x|Y)P(x|Y)P(x|Y)P(Y)P(X)=23230312P(X)=054P(X)=0

P(Y|X)>P(Y|X) , 所以這個學生會考過的.
  但是這也有一個問題, 就是在沒考過這也情況下, P(x|Y)=0 , 由於它的存在, 不管其它屬性是什麼, 直接讓第二個概率的分子爲0了, 因爲分子上是連乘的, 所以這也是一種弊端, 爲此我們可以考慮做一個操作防止這樣的情況出現, 那就是拉普拉斯平滑, 其實就是在分子上加上a, 在分母上加上 類別數*a. 上面那個例子就變成分子上加a, 分母上加2a即可.

  總結一下: 我羅嗦了那麼多, 其實計算樸素貝葉斯就分三步.
  第一: 計算先驗概率, 先驗概率包括
P(Y=ck)=ck

P(x|Yck)=Yck,xY

  第二: 計算預測樣本的概率
P(Yck)P(x1|Yck)...P(xn|Yck),k=1,2,3,..K
的值

  第三: 在第二步中你已經計算出來了K個概率值, 比較這K個概率值的大小, 最大的概率值所屬於的類別就爲該樣本的類別.

以上, 歡迎拍磚, 謝謝.

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