貝葉斯分類器是一種基于統(tǒng)計的分類方法,用來預測諸如某個樣本屬于某個分類的概率有多大
基于Bayes理論
研究發(fā)現(xiàn)溪王,Na?ve(nave) Bayes Classifier在性能上和Decision Tree涧衙、Neural? Network classifiers相當帝美。在應用于大數(shù)據(jù)集時顾患,具有較高的準確率和速度
Na?ve Bayes Classifier假設屬性值之間是獨立的,因此可以簡化很多計算产阱,故稱之為Na?ve 。當屬性值之間有依賴關系時块仆,采用Bayesian Belief Networks進行分類构蹬。
貝葉斯推斷是一種統(tǒng)計學方法王暗,用來估計統(tǒng)計量的某種性質(zhì)。
它是貝葉斯定理的應用庄敛。英國數(shù)學家托馬斯·貝葉斯(Thomas Bayes)在1763年發(fā)表的一篇論文中俗壹,首先提出了這個定理。
關于貝葉斯推斷铐姚,摘一段 wikipedia 上的簡介:
所謂的貝葉斯方法源于他生前為解決一個“逆概”問題寫的一篇文章策肝。在貝葉斯寫這篇文章之前,人們已經(jīng)能夠計算“正向概率”隐绵,如“假設袋子里面有N個白球之众,M個黑球,你伸手進去摸一把依许,摸出黑球的概率是多大”棺禾。
而一個自然而然的問題是反過來:“如果我們事先并不知道袋子里面黑白球的比例,而是閉著眼睛摸出一個(或好幾個)球峭跳,觀察這些取出來的球的顏色之后膘婶,那么我們可以就此對袋子里面的黑白球的比例作出什么樣的推測”。這個問題蛀醉,就是所謂的逆概問題悬襟。
貝葉斯推斷及其在郵件過濾中的應用:
郵件過濾:垃圾郵件是一種令人頭痛的頑癥,困擾著所有的互聯(lián)網(wǎng)用戶拯刁。正確識別垃圾郵件的技術難度非常大脊岳。傳統(tǒng)的垃圾郵件過濾方法,主要有“關鍵詞法”和“校驗碼法”等垛玻。前者的過濾依據(jù)是特定的詞語割捅;后者則是計算郵件文本的校驗碼,再與已知的垃圾郵件進行對比帚桩。它們的識別效果都不理想亿驾,而且很容易規(guī)避。
2002年账嚎,Paul Graham提出使用“貝葉斯推斷”過濾垃圾郵件莫瞬。他說,這樣做的效果郭蕉,好得不可思議疼邀。1000封垃圾郵件可以過濾掉995封,且沒有一個誤判
另外恳不,這種過濾器還具有自我學習的功能檩小,會根據(jù)新收到的郵件,不斷調(diào)整烟勋。收到的垃圾郵件越多规求,它的準確率就越高
貝葉斯是機器學習的核心方法之一
背后的深刻原因在于筐付,現(xiàn)實世界本身就是不確定的,人類的觀察能力是有局限性的
我們?nèi)粘K^察到的只是事物表面上的結果阻肿,沿用剛才袋子取球的例子:
我們往往只能知道從里面取出來的球是什么顏色瓦戚,而并不能直接看到袋子里面實際的情況
這個時候,需要提供一個猜測(hypothesis丛塌,更為嚴格的說法是“假設”较解,)
所謂猜測,當然就是不確定的(很可能有好多種乃至無數(shù)種猜測都能滿足目前的觀測)赴邻,但選哪種好呢印衔?需要做如下事情:
1. 算出各種不同猜測的可能性大小
2. 算出最靠譜(可能性最大)的猜測是什么
P(B|A) = P(A|B) * P(B) / [P(A|B) * P(B) + P(A|~B) * P(~B) ]
收縮起來就是:
??? P(B|A) = P(AB) / P(A)
??? P(B|A) = P(A|B) *P(B) / P(A)
其實這個就是貝葉斯公式
例1:拼寫糾正
問題:用戶輸入了一個不在字典中的單詞,我們需要去猜測:“他到底真正想輸入的單詞是什么呢姥敛?”我們需要求如下概率:
P(我們猜測他想輸入的單詞 |他實際輸入的單詞)
并找出那個使得這個概率最大的猜測單詞
顯然奸焙,我們的猜測未必是唯一的,比如用戶輸入:thew 彤敛,那么他到底是想輸入the 与帆,還是想輸入thaw ?到底哪個猜測可能性更大呢墨榄?
幸運的是我們可以用貝葉斯公式來直接求出它們各自的概率
不妨將我們的多個猜測記為h1玄糟,h2,. .. ( h 代表 hypothesis)袄秩,它們都屬于一個有限且離散的猜測空間H(單詞總共就那么多)阵翎,將用戶實際輸入的單詞記為 D( D 代表 Data ,即觀測數(shù)據(jù))播揪,于是需要求:
P(我們的猜測1 | 他實際輸入的單詞)? 可以抽象地記為:P(h1 | D)
P(我們的猜測2 | 他實際輸入的單詞)??可以抽象地記為:P(h2 | D)
P(我們的猜測3 | 他實際輸入的單詞)??可以抽象地記為:P(h3 | D)
…
不妨統(tǒng)一記為:P(h | D)
運用一次貝葉斯公式贮喧,我們得到:P(h | D) = P(h) * P(D | h) / P(D)
對于不同的具體猜測h1, h2, h3 .. 筒狠,P(D) 都是一樣的猪狈,所以在比較 P(h1|D) 和 P(h2|D) 時可忽略。即只需知道:
P(h | D) ∝ P(h) * P(D | h)
這個式子的抽象含義是:對于給定觀測數(shù)據(jù)辩恼,一個猜測是好是壞雇庙,取決于以下兩項的乘積:
這個猜測本身獨立的可能性大小(先驗概率灶伊,Prior )
這個猜測生成我們觀測到的數(shù)據(jù)的可能性大小”(似然疆前,Likelihood )
具體到前面的thew 例子上,含義就是聘萨,用戶實際是想輸入the 的可能性大小取決于如下兩項的乘積:
the 本身在詞匯表中被使用的可能性(頻繁程度)大兄窠贰(先驗概率)
想打 the 卻打成 thew 的可能性大小(似然)
下面的事情就很簡單了米辐,對于我們猜測為可能的每個單詞計算一下P(h) * P(D | h) 這個值胸完,然后取最大的书释,得到的就是最靠譜的猜測
例2:垃圾郵件過濾器
問題:給定一封郵件,判定它是否屬于垃圾郵件赊窥,用 D 來表示這封郵件爆惧, D 由 N 個單詞組成,用 h+ 來表示垃圾郵件锨能,h- 表示正常郵件
問題可以形式化地描述為求:
? P(h+|D) = P(h+) * P(D|h+) / P(D)
? P(h-|D) = P(h-) * P(D|h-) / P(D)
P(h+) 和 P(h-) 這兩個先驗概率都很容易求出來扯再,只需要計算一個郵件庫里面垃圾郵件和正常郵件的比例就行了。
然而P(D|h+) 卻不容易求址遇,因為 D 里面含有 N 個單詞 d1, d2, d3, .. 熄阻,所以P(D|h+) =P(d1,d2,..,dn|h+)
P(d1,d2,..,dn|h+) 是指在垃圾郵件當中出現(xiàn)跟目前這封郵件一模一樣的一封郵件的概率是多大!
不可能發(fā)生的事件倔约,每封郵件都是不同的饺律,世界上有無窮多封郵件。因此跺株,收集的訓練數(shù)據(jù)庫不管含了多少封郵件复濒,也不可能找出一封跟目前這封一模一樣的。那如何計算P(d1,d2,..,dn|h+)呢乒省?
條件獨立假設:假設di 與 di-1 是完全條件無關的巧颈,于是式子就簡化為 P(d1|h+) * P(d2|h+) * P(d3|h+) * .. 。這也正是樸素貝葉斯方法的樸素之處袖扛。
而計算P(d1|h+) * P(d2|h+) * P(d3|h+) * .. 砸泛,只要統(tǒng)計di 這個單詞在垃圾郵件中出現(xiàn)的頻率即可。
樸素貝葉斯分類器
每個數(shù)據(jù)樣本用一個n維特征向量表示蛆封,描述由屬性對樣本的n個度量唇礁。
假定有m個類。給定一個未知的數(shù)據(jù)樣本X(即惨篱,沒有類標號)盏筐,分類法將預測X屬于具有最高后驗概率(條件X下)的類。即砸讳,樸素貝葉斯分類將未知的樣本分配給類Ci 琢融,當且僅當:
??????? 這樣,我們最大化P(Ci|X)簿寂。其最大的類Ci稱為最大后驗假定漾抬。根據(jù)貝葉斯定理:
n由于P(X) 對于所有類為常數(shù),只需要?P(Ci|X)P(Ci)最大即可常遂。如果類的先驗概率未知纳令,則通常假定這些類是等概率的;即,P(C1)=?P(C2)=?P(C3) 平绩。并據(jù)此只對P(X|Ci) 最大化坤按。否則,我們最大化P(X|Ci)P(Ci) 馒过。類的先驗概率可以用P(Ci)=si/s 計算臭脓;其中,si是類C中的訓練樣本數(shù)腹忽,而s是訓練樣本總數(shù)来累。
n給定具有許多屬性的數(shù)據(jù)集,計算P(X|Ci) 的開銷可能非常大窘奏。為降低計算的開銷嘹锁,可以樸素地假設屬性間不存在依賴關系。這樣:
概率 P(X1|Ci) ,P(X2|Ci)?,…,可以由訓練樣本估計着裹,其中:
(a)?如果Ak是分類屬性领猾,則P(Xk|Ci)=sik/si;其中sik 是在屬性Ak 上具有值xk 的類Ci 的訓練樣本數(shù)骇扇,而si 是Ci中的訓練樣本數(shù)
(b)?如果是連續(xù)值屬性摔竿,則通常假定該屬性服從高斯分布。因而:
其中少孝,給定類Ci的訓練樣本屬性Ak的值继低,g(Xk,μci,σci)是屬性Ak的高斯密度函數(shù),而μci,σci分別為平均值和標準差稍走。
n為對未知樣本X分類袁翁,對每個類Ci,計算樣本X被指派到類Ci婿脸,當且僅當:
換言之粱胜,X被指派到其P(X|Ci)P(Ci)?最大的類Ci。
實例:
判別模型 vs. 生成(概率)模型
P(c|x)在現(xiàn)實中通常難以直接獲得
從這個角度來看狐树,機器學習所要實現(xiàn)的是基于有限的訓練樣本
盡可能準確地估計出后驗概率
貝葉斯定理:
極大似然估計:先假設某種概率分布形式焙压,再基于訓練樣例對參數(shù)進行估計,估計結果的準確性嚴重依賴于所假設的概率分布形式是否符合潛在的真實分布
拉普拉斯修正:若某個屬性值在訓練集中沒有與某個類同時出現(xiàn)過褪迟,則直接計算會出現(xiàn)問題冗恨,因為概率連乘將“抹去”其他屬性提供的信息
樸素貝葉斯優(yōu)缺點:
優(yōu)點:易于實現(xiàn)答憔,多數(shù)情況下結果較滿意
缺點:假設味赃,屬性間獨立, 丟失準確性;實際上, 屬性間存在依賴
處理依賴:貝葉斯信念網(wǎng)絡(Bayesian Belief Networks)