設X是數據元組。在貝葉斯的術語中,X看做是證據。通常,X用n個屬性集的測量值描述。令H為某種假設,如數據元組X屬於某個特定類C。對於分類問題,希望確定給定證據或者觀測數據元組X,假設H成立的概率為P(H|X)。換言之,給定X的屬性描述,找出元組X屬於類C的概率。
P(H|X)是后驗概率,或在條件X下,H的后驗概率。例如,設數據元組限於分別由屬性age和income描述的顧客,而X是一位35歲的顧客,其年收入為4萬美元。令H為某種假設,如顧客將購買計算機。則P(H|X)反映當我們知道顧客年齡和收入時,顧客X將購買計算機的概率。
相反,P(H)是先驗概率,或H的先驗概率。對於我們的例子,它是任意給定顧客將購買計算機的概率,而不管他們的年齡,收入或任何其他的信息。后驗概率P(H|X)比先驗概率P(H)基於更多的信息(例如顧客的信息)。P(H)獨立於X。
類似地,P(X|H)是條件H下,X的后驗概率。也就是說,它是已知顧客X將要購買計算機,該顧客的年齡為35歲並且收入時4萬美元的概率。
P(X)是X的先驗概率。它是顧客集合中的年齡為35歲並且收入為4萬美元的概率。
如何估計這些概率?正如下面將要看到的,P(X),P(H),和P(X|H)可以由給定的數據進行估計。貝葉斯定理是有用的,它提供了一種由P(X)、P(H)、P(X|H)計算后驗概率P(H|X)的方法。貝葉斯定理如下:

朴素貝葉斯分類法或者簡單貝葉斯分類法的工作過程如下:
(1)設D是訓練元組和他們相關聯的類標號的集合。通常,每個元組用一個n維屬性向量X={X1,X2,....Xn}表示,描述由n個屬性A1,A2,...An對元組的n個測量。
(2)假定有m個類C1,C2,...Cm。給定元組X,分類法將預測X屬於具有最高后驗概率的類(在條件X下)。也就是說,朴素貝葉斯分類法預測X屬於類Ci,當且僅當P(Ci|X)>P(Cj|X) j∈[1,m] j≠i。這樣,最大化P(Ci|X)。P(Ci|X)最大的類Ci稱為最大后驗概率。根據貝葉斯定理,

(3)由於P(X)對所有類為常數,所以只需要P(X|Ci)P(Ci)最大即可。如果類的先驗概率未知,則通常假設這些類是等概率的,即P(C1)=P(C2)=...=P(Cn),並且據此對P(X|Ci)最大化,否則,最大化P(X|Ci)P(Ci)。注意,類先驗概率可以用P(Ci)=|C i,D|/|D|估計,其中|Ci,D|是D中Ci類的訓練元組數目。
(4)給定具有許多屬性的數據集,計算P(X|Ci)的開銷可能非常大。為了降低計算P(X|Ci)的開銷,可以做類條件獨立的朴素假定。給定元組的類標號,假定屬性值有條件地相互獨立(即屬性之間不存在依賴關系)。因此有:

可以很容易地由訓練元組估計概率
。注意,Xk表示元組X在屬性Ak的值。對於每個屬性,考察該屬性是分類的還是連續值的。例如,為了計算
,考慮以下的情況:


(1)如果Ak是分類屬性,則P(Xk|Ci)是D中屬性Ak值為Xk的Ci類的元組數目除以D中Ci類的元組數
。

(2)如果Ak是連續值屬性,則需要多做一點工作,但是計算很簡單。通常,假定連續值屬性服從均值為μ,標准差為σ的高斯分布,由下式定義:

因此:

這些公式看上去可能有點令人生畏,但是沉住氣!需要計算
和
,它們分別是Ci類訓練元組屬性Ak的均值和標准差。將這兩個量與Xk一起帶入公式3,計算P(Xk|Ci)。


例如,設X=(35,40000美元),其中A1和A2分別是屬性age和income。設類標號屬性為buys_computer。X相關聯的類標號是“yes”。假設age尚未離散化,因此是連續值屬性。假設從訓練集之中發現D中購買計算機的顧客年齡為38 ±12歲。換言之,對於屬性age和這個類,有μ=28,σ=12。可以把這些量與元組X的x1=35一起帶入公式3,估計
。

2.貝葉斯分類法的效果:
該分類法與決策樹和神經網絡分類法的各種比較試驗表明,在某些領域,貝葉斯分類法足以和它們相媲美。理論上講,與其他所有分類算法相比,貝葉斯分類法具有最小的錯誤率。然而實踐之中並非一直如此。這是由於對其使用的假定類條件獨立性的不確定性,以及缺乏可用的概率數據造成的。
貝葉斯分類還可以用來為不直接使用貝葉斯定理的其他分類法提供理論判定。例如,在某種假定下,可以證明,與朴素貝葉斯分類法一樣,許多神經網絡和曲線擬合算法輸出最大的后驗假定。
3.一個例子:

數據元組用屬性age、income、student、和credit_rating描述。類標號屬性buys_computer具有兩個不同值,yes和no。希望分類的元組是X=(age=youth,income=medium,student=yes,credit_rating=fair),需要最大化P(X|Ci)P(Ci),i=1,2。沒各類的先驗概率P(Ci)可以根據訓練元組計算:
P(buys_computer=yes)=9/14=0.643
P(buy_computer=no)=5/14=0.357
為了計算P(X|Ci),i=1,2,計算下面的條件概率:
P(age=youth|buys_computer=yes)
=2/9=0.222
P(age=youth|buys_computer=no)
=3/5=0.600
P(income=medium|buys_computer=yes) =4/9=0.444
P(income=medium|buys_computer=no) =2/5=0.400
P(student=yes|buy_computer=yes) =6/9=0.667
P(student=no|buy_computer=yes) =1/5=0.200
P(credit_rating=fair|buy_computer=yes)
=6/9=0.667
P(credit_rating=fair|buy_computer=no) =2/5=0.400
所以就有P(X|buys_computer=yes) =
P(age=youth|buys_computer=yes)*
P(income=medium|buys_computer=yes)*
P(student=yes|buy_computer=yes)*
P(credit_rating=fair|buy_computer=yes)
= 0.222*0.444*0.667*0.667=0.044
也有:
P(X|buys_computer=no) =
P(age=youth|buys_computer=no)*
P(income=medium|buys_computer=
no
)*
P(student=yes|buy_computer=
no
)*
P(credit_rating=fair|buy_computer=
no
)
= 0.600*0.400*0.200*0.400=0.019
為了找到最大化的P(X|Ci)P(Ci)的類,計算:
P(X|buys_computer=yes)P(buys_computer=yes)=0.044*9/14=0.028
P(X|buys_computer=no)P(buys_computer=no)=0.019*5/14=0.007
所以,對於元組X,朴素貝葉斯分類預測元組X的類別為buys_computer=yes。
4.對於0概率的特殊處理
如果得到某個p(Xk|Ci)的零概率值,那么P(X|Ci)=0,現在還怎么繼續玩下去?
有一個簡單的技巧來避免此問題。可以假定訓練的數據庫D很大,以至於每個計數加1造成的估計概率的變化可以忽略不計。如果對q個計數都加上1,則必須記住在用於計算概率的對應分母上加上q。這種概率估計計數稱為拉普拉斯校准或者拉普拉斯估計法。
附例:
假設在某個訓練數據庫D上,類buys_computer=yes包含由1000個元組,有0個元組income=low,990個元組income=medium,10個元組income=high。不使用拉普拉斯校准,這些事情的概率分別是0,0.990,0.010。對這三個量使用拉普拉斯校准,假定對每個收入--值對增加一各元組。用這種方法,分別得到如下的概率:
1/1003 =0.001 991/1003=0.988 11/1003=0.011
這些校准的概率和對應的未校准的估計很接近,但是避免了0概率值。