1. 程式人生 > >資料探勘經典演算法總結-樸素貝葉斯分類器

資料探勘經典演算法總結-樸素貝葉斯分類器

貝葉斯定理(Bayes theorem),是概率論中的一個結果,它跟隨機變數條件概率以及邊緣概率分佈有關。在有些關於概率的解說中,貝葉斯定理(貝葉斯更新)能夠告知我們如何利用新證據修改已有的看法。

通常,事件A在事件B(發生)的條件下的概率,與事件B在事件A的條件下的概率是不一樣的;然而,這兩者是有確定的關係,貝葉斯定理就是這種關係的陳述。

貝葉斯定理的陳述

貝葉斯定理是關於隨機事件A和B的條件概率邊緣概率的一則定理。

先驗概率或邊緣概率。之所以稱為”先驗”是因為它不考慮任何B方面的因素。
  • Pr(A|B)是已知B發生後A條件概率,也由於得自B的取值而被稱作A後驗概率
  • Pr(B|A)是已知A
    發生後B條件概率,也由於得自A的取值而被稱作B後驗概率
  • Pr(B)是B先驗概率邊緣概率,也作標準化常量(normalizedconstant).

    按這些術語,Bayes定理可表述為:

    後驗概率 = (相似度 * 先驗概率)/標準化常量

    也就是說,後驗概率與先驗概率和相似度的乘積成正比。

    另外,比例Pr(B|A)/Pr(B)也有時被稱作標準相似度(standardisedlikelihood),Bayes定理可表述為:

    後驗概率 = 標準相似度 * 先驗概率

    從條件概率推導貝葉斯定理

    根據條件概率的定義 . 在事件B發生的條件下事件 A發生的概率是

    wikipedia)”src=”http://upload.wikimedia.org/math/f/9/9/f9970e3bd225504bc5c54733bd8e78d2.png”alt=”\Pr(B|A) = \frac{\Pr(A \cap B)}{\Pr(A)}. \!”/>

    整理與合併這兩個方程式, 我們可以找到

    wikipedia)”src=”http://upload.wikimedia.org/math/b/2/6/b26222db003c783d5a92815732533810.png”alt=”\Pr(A|B) = \frac{\Pr(B|A)\,\Pr(A)}{\Pr(B)}. \!”/>

    下面我再舉個簡單的例子來說明下。

    示例1

    考慮一個醫療診斷問題,有兩種可能的假設:(1)病人有癌症。(2)病人無癌症。樣本資料來自某化驗測試,它也有兩種可能的結果:陽性和陰性。假設我們已經有先驗知識:在所有人口中只有0.008的人患病。此外,化驗測試對有病的患者有98%的可能返回陽性結果,對無病患者有97%的可能返回陰性結果。

    上面的資料可以用以下概率式子表示:
    P(cancer)=0.008,P(無cancer)=0.992
    P(陽性|cancer)=0.98,P(陰性|cancer)=0.02
    P(陽性|無cancer)=0.03,P(陰性|無cancer)=0.97
    假設現在有一個新病人,化驗測試返回陽性,是否將病人斷定為有癌症呢?我們可以來計算極大後驗假設:
    P(陽性|cancer)p(cancer)=0.98*0.008 = 0.0078
    P(陽性|無cancer)*p(無cancer)=0.03*0.992 = 0.0298
    因此,應該判斷為無癌症。
    貝葉斯學習理論
    貝葉斯是一種基於概率的學習演算法,能夠用來計算顯式的假設概率,它基於假設的先驗概率,給定假設下觀察到不同資料的概率以及觀察到的資料本身(後面我們可以看到,其實就這麼三點東西,呵呵)。
    我們用P(h)表示沒有訓練樣本資料前假設h擁有的初始概率,也就稱為h的先驗概率,它反映了我們所擁有的關於h是一個正確假設的機會的背景知識。當然如果沒有這個先驗知識的話,在實際處理中,我們可以簡單地將每一種假設都賦給一個相同的概率。類似,P(D)代表將要觀察的訓練樣本資料D的先驗概率(也就是說,在沒有確定某一個假設成立時D的概率)。然後是P(D/h),它表示假設h成立時觀察到資料D的概率。在機器學習中,我們感興趣的是P(h/D),也就是給定了一個訓練樣本資料D,判斷假設h成立的概率,這也稱之為後驗概率,它反映了在看到訓練樣本資料D後假設h成立的置信度。(注:後驗概率p(h/D)反映了訓練資料D的影響,而先驗概率p(h)是獨立於D的)。
    P(h|D) =P(D|h)P(h)/p(D),從貝葉斯公式可以看出,後驗概率p(h/D)取決於P(D|h)P(h)這個乘積,呵呵,這就是貝葉斯分類演算法的核心思想。我們要做的就是要考慮候選假設集合H,並在其中尋找當給定訓練資料D時可能性最大的假設h(h屬於H)。
    簡單點說,就是給定了一個訓練樣本資料(樣本資料已經人工分類好了),我們應該如何從這個樣本資料集去學習,從而當我們碰到新的資料時,可以將新資料分類到某一個類別中去。那可以看到,上面的貝葉斯理論和這個任務是吻合的。

    樸素貝葉斯分類器
    種類

      貝葉斯分類器的分類原理是通過某物件的先驗概率,利用貝葉斯公式計算出其後驗概率,即該物件屬於某一類的概率,選擇具有最大後驗概率的類作為該物件所屬的類。目前研究較多的貝葉斯分類器主要有四種,分別是:NaiveBayes、TAN、BAN和GBN。
    解釋
      貝葉斯網路是一個帶有概率註釋的有向無環圖,圖中的每一個結點均表示一個隨機變數,圖中兩結點間若存在著一條弧,則表示這兩結點相對應的隨機變數是概率相依的,反之則說明這兩個隨機變數是條件獨立的。網路中任意一個結點X均有一個相應的條件概率表(Conditional Probability Table,CPT),用以表示結點X在其父結點取各可能值時的條件概率。若結點X 無父結點,則X 的CPT 為其先驗概率分佈。貝葉斯網路的結構及各結點的CPT定義了網路中各變數的概率分佈。
    分類
      貝葉斯分類器是用於分類的貝葉斯網路。該網路中應包含類結點C,其中C 的取值來自於類集合( c1 , c2 , … ,cm),還包含一組結點X = ( X1 , X2 , … ,Xn),表示用於分類的特徵。對於貝葉斯網路分類器,若某一待分類的樣本D,其分類特徵值為x = ( x1 , x2 , … , x n),則樣本D 屬於類別ci 的概率P( C = ci | X1 = x1 , X2 = x 2 , … , Xn = x n) ,( i= 1 ,2 , … , m) 應滿足下式:   P( C = ci | X = x) = Max{ P( C = c1 | X =x) , P( C = c2 | X = x ) , … , P( C = cm | X = x ) }   而由貝葉斯公式:  P( C = ci | X = x) = P( X = x | C = ci) * P( C = ci) / P( X = x)  其中,P( C = ci) 可由領域專家的經驗得到,而P( X = x | C = ci) 和P( X = x)的計算則較困難。
    兩階段
      應用貝葉斯網路分類器進行分類主要分成兩階段。第一階段是貝葉斯網路分類器的學習,即從樣本資料中構造分類器,包括結構學習和CPT學習;第二階段是貝葉斯網路分類器的推理,即計算類結點的條件概率,對分類資料進行分類。這兩個階段的時間複雜性均取決於特徵值間的依賴程度,甚至可以是NP完全問題,因而在實際應用中,往往需要對貝葉斯網路分類器進行簡化。根據對特徵值間不同關聯程度的假設,可以得出各種貝葉斯分類器,NaiveBayes、TAN、BAN、GBN 就是其中較典型、研究較深入的貝葉斯分類器。

    在具有模式的完整統計知識條件下,按照貝葉斯決策理論進行設計的一種最優分類器。分類器是對每一個輸入模式賦予一個類別名稱的軟體或硬體裝置,而貝葉斯分類器是各種分類器中分類錯誤概率最小或者在預先給定代價的情況下平均風險最小的分類器。它的設計方法是一種最基本的統計分類方法。

    最小錯誤概率貝葉斯分類器
      把代表模式的特徵向量x分到c個類別(ω1,ω2,…,ωc)中某一類的最基本方法 貝葉斯分類器是計算在x的條件下,該模式屬於各類的概率,用符號P(ω1|x),P(ω2|x),…,P(ωc|x)表示。比較這些條件概率,最大數值所對應的類別ωi就是該模式所屬的類。例如表示某個待查細胞的特徵向量x屬於正常細胞類的概率是0.2,屬於癌變細胞類的概率是0.8,就把它歸類為癌變細胞。上述定義的條件概率也稱為後驗概率,在特徵向量為一維的情況下,一般有圖中的變化關係。當x=x*時,P(ω1|x)=P(ω2|x)對於x>x*的區域,由於P(ω2|x)>P(ω1|x)因此x屬ω2類,對於xP(ω2|x),x屬ω1類,x*就相當於區域的分界點。圖中的陰影面積就反映了這種方法的錯誤分類概率,對於以任何其他的x值作為區域分界點的分類方法都對應一個更大的陰影面積,因此貝葉斯分類器是一種最小錯誤概率的分類器。

    貝葉斯分類器計算過程
      一般情況下,不能直接得到後驗概率而是要通過貝葉斯公式進行計算。式中的P(x│ωi)為在模式屬於ωi類的條件下出現x的概率密度,稱為x的類條件概率密度;P(ωi)為在所研究的識別問題中出現ωi類的概率,又稱先驗概率;P(x)是特徵向量x的概率密度。分類器在比較後驗概率時,對於確定的輸入x,P(x)是常數,因此在實際應用中,通常不是直接用後驗概率作為分類器的判決函式gi(x)(見線性判別函式)而採用下面兩種形式:  
    對所有的c個類計算gi(x)(i=1,2,…,c)。
    與gi(x)中最大值相對應的類別就是x的所屬類別。

    最小風險貝葉斯分類器

                                      公式
      由於客觀事物的複雜性,分類器作出各種判決時的風險是不一樣的。例如將癌細胞誤判為正常細胞的風險就比將正常細胞誤判為癌細胞的風險大。因此,在貝葉斯分類器中引入了風險的概念。在實際應用中根據具體情況決定各種風險的大小,通常用一組係數Cij來表示。Cij表示分類器將被識別樣本分類為ωi,而該樣本的真正類別為ωj時的風險。設計最小風險分類器的基本思想是用後驗概率計算將x分類為ωi的條件風險貝葉斯分類器比較各Ri(x)的大小,與最小值對應的類別是分類的結果。評價這種分類器的標準是平均風險,它的平均風險最小。在實際應用時,後驗概率是難以獲得的,根據模式類別的多少和Cij的取值方式,可設計出各種分類器,例如模式為兩類時,判別函式為判別函式如果選擇C11和C22為零,C12和C21為1,它就是兩類最小錯誤概率分類器。實際上,最小錯誤概率分類器是最小風險分類器的一種特殊情況。  

            貝葉斯分類器

                                判別函式

    設計貝葉斯分類器的關鍵是要知道樣本特徵x的各種概率密度函式。條件概率密度函式為多元正態分佈是研究得最多的分佈。這是由於它的數學表示式易於分析,在實際應用中也是一種常見的分佈形式。經常使用引數方法來設計正態分佈的判別函式。

    範例:

    也許你覺得這理論還不是很懂,那我再舉個簡單的例子,讓大家對這個演算法的原理有個快速的認識。(注:這個示例摘抄自《機器學習》這本書的第三章的表3-2.)

    假設給定了如下訓練樣本資料,我們學習的目標是根據給定的天氣狀況判斷你對PlayTennis這個請求的回答是Yes還是No。

    Day Outlook Temperature Humidity Wind PlayTennis
    D1 Sunny Hot High Weak No
    D2 Sunny Hot High Strong No
    D3 Overcast Hot High Weak Yes
    D4 Rain Mild High Weak Yes
    D5 Rain Cool Normal Weak Yes
    D6 Rain Cool Normal Strong No
    D7 Overcast Cool Normal Strong Yes
    D8 Sunny Mild High Weak No
    D9 Sunny Cool Normal Weak Yes
    D10 Rain Mild Normal Weak Yes
    D11 Sunny Mild Normal Strong Yes
    D12 Overcast Mild High Strong Yes
    D13 Overcast Hot Normal Weak Yes
    D14 Rain Mild High Strong No

    可以看到這裡樣本資料集提供了14個訓練樣本,我們將使用此表的資料,並結合樸素貝葉斯分類器來分類下面的新例項:
    (Outlook = sunny,Temprature = cool,Humidity = high,Wind =strong)
    我們的任務就是對此新例項預測目標概念PlayTennis的目標值(yes或no).
    由上面的公式可以得到:

    可以得到:
    P(PlayTennis =yes) = 9/14 = 0.64,P(PlayTennis=no)=5/14 = 0.36
    P(Wind=Stong| PlayTennis =yes)=3/9=0.33,p(Wind=Stong| PlayTennis=no)=3/5 = 0.6
    其他資料類似可得,代入後得到:
    P(yes)P(Sunny|yes)P(Cool|yes)P(high|yes)P(Strong|yes) =0.0053
    P(no)P(Sunny|no)P(Cool|no)P(high|no)P(Strong|no)=0.0206
    因此應該分類到no這一類中。
    貝葉斯文字分類演算法
    好了,現在開始進入本文的主旨部分:如何將貝葉斯分類器應用到中文文字的分類上來?
    根據聯合概率公式(全概率公式)

    M——訓練文字集合中經過踢出無用詞去除文字預處理之後關鍵字的數量。

    參考文獻: