樸素貝葉斯算法的簡單理解

貝葉斯算法常用於分類

已知類別集合y:(y1,y2,y3…yn)和(特徵)項集和x(x1,x2,x3…xm),確定映射規則y =f(x)使xi都可以唯一映射到Y中。 其中Y叫做類別集合,其中每一個元素是一個類別,而X叫做項集合,其中每一個元素是一個待分類項,f叫做分類器。分類算法的任務就是構造分類器f。

貝葉斯公式: p(y|x) = p(x|y) * p(y) / p(x)

樸素貝葉斯:x子項發生的概率都是獨立的:
p(y|x) = p(x|y)* p(y) / p(x) = { p(x1|y) p(x2|y) p(xn|y) p(y)} / { p(x1)p(x2)*p(xn) }

  1. 對貝葉斯公式的理解:

p(y|x)可以看做是根據x找到其對應的y,其在數學上的含義爲x發生的前提下y發生的概率。
p(y|x) = p(x|y) * p(y) / p(x)這個公式的意義在於當我們正推的時候不好計算時可以採用逆推的方式,不是有句話叫做事後諸葛亮嘛,從p(y|x)即從結果看過程或者說換個角度有時候就更容易計算了。

那麼這個公式是怎麼來的呢?在概率上p(A|B) = p(AB) / p(B)。
p(AB)考慮的範圍

p(A|B)考慮的範圍
這裏寫圖片描述
也就是說p(A|B)考慮的集合 = 全部集合*p(B),集合的大小和子集概率成反比。

這樣理解:p(AB)是綜合考慮了A、B同時發生的概率,但是p(A|B)是在默認了B是已經發生的情況,其範圍更小,所以p(A|B)和p(AB)的差別就在於是否考慮B的概率p(B)。同理P(B|A) = P(AB) / p(A) –> p(AB) = p(B|A) * p(A)。
於是:p(B|A) = p(AB) / p(B) = p(B|A) * p(A) / p(B) 。

  1. 對樸素貝葉斯公式的理解

雖然p(y|x) = p(x|y) * p(y) / p(x),但是p(x|y)還是不好算啊,又不能真的根據以前的結果來計算,例如p(醜|嫁人),嫁給醜八怪以前不存在不代表以後不存在啊,所以還是得用數據說話。

樸素貝葉斯簡化了計算:x子項x1,x2…xn相互獨立時,
p(x|yi) = p(x1|yi) * p(x2|yi) * … p(xn|yi)。
爲什麼呢,前面說了p(x|yi)表示x在yi的前提下發生的概率,因此在yi下p(x) = p(x1)p(x2)….*P(xn)。把yi下補充完整公式就成了上面那個樣子。
注意:具體x中未必包含全部子項,右邊的式字也相對應。

參考資料:
http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html

http://blog.csdn.net/amds123/article/details/70173402

發佈了53 篇原創文章 · 獲贊 44 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章