Machine Learning-樸素貝葉斯演算法

redis_v發表於2016-01-11

貝葉斯定理

        如何得到兩個事件交換後的概率,也就是在已知P(A|B)的情況下如何求得P(B|A)。這裡先解釋什麼是條件概率:

     表示事件B已經發生的前提下,事件A發生的概率,叫做事件B發生下事件A的條件概率。其基本求解公式為:  

   

      貝葉斯定理之所以有用,是因為我們在生活中經常遇到這種情況:我們可以很容易直接得出P(A|B),P(B|A)則很難直接得出,但我們更關心P(B|A),貝葉斯定理就為我們打通從P(A|B)獲得P(B|A)的道路。

      下面不加證明地直接給出貝葉斯定理:

     

樸素貝葉斯分類的原理與流程

樸素貝葉斯分類是一種十分簡單的分類演算法,叫它樸素貝葉斯分類是因為這種方法的思想的很樸素,樸素貝葉斯的思想基礎是這樣的:對於給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個最大,就認為此待分類項屬於哪個類別。通俗來說,就好比這麼個道理,你在街上看到一個黑人,我問你你猜這哥們哪裡來的,你十有八九猜非洲。為什麼呢?因為黑人中非洲人的比率最高,當然人家也可能是美洲人或亞洲人,但在沒有其它可用資訊下,我們會選擇條件概率最大的類別,這就是樸素貝葉斯的思想基礎。

      樸素貝葉斯分類的正式定義如下:

      1、設為一個待分類項,而每個a為x的一個特徵屬性。

      2、有類別集合

      3、計算

      4、如果,則

      那麼現在的關鍵就是如何計算第3步中的各個條件概率。我們可以這麼做:

      1、找到一個已知分類的待分類項集合,這個集合叫做訓練樣本集。

      2、統計得到在各類別下各個特徵屬性的條件概率估計。即

      3、如果各個特徵屬性是條件獨立的,則根據貝葉斯定理有如下推導:

     

      因為分母對於所有類別為常數,因為我們只要將分子最大化皆可。又因為各特徵屬性是條件獨立的,所以有:

     

      根據上述分析,樸素貝葉斯分類的流程可以由下圖表示(暫時不考慮驗證):

      可以看到,整個樸素貝葉斯分類分為三個階段:

      第一階段——準備工作階段,這個階段的任務是為樸素貝葉斯分類做必要的準備,主要工作是根據具體情況確定特徵屬性,並對每個特徵屬性進行適當劃分,然後由人工對一部分待分類項進行分類,形成訓練樣本集合。這一階段的輸入是所有待分類資料,輸出是特徵屬性和訓練樣本。這一階段是整個樸素貝葉斯分類中唯一需要人工完成的階段,其質量對整個過程將有重要影響,分類器的質量很大程度上由特徵屬性、特徵屬性劃分及訓練樣本質量決定。

      第二階段——分類器訓練階段,這個階段的任務就是生成分類器,主要工作是計算每個類別在訓練樣本中的出現頻率及每個特徵屬性劃分對每個類別的條件概率估計,並將結果記錄。其輸入是特徵屬性和訓練樣本,輸出是分類器。這一階段是機械性階段,根據前面討論的公式可以由程式自動計算完成。

      第三階段——應用階段。這個階段的任務是使用分類器對待分類項進行分類,其輸入是分類器和待分類項,輸出是待分類項與類別的對映關係。這一階段也是機械性階段,由程式完成。

相關文章