天天看點

機器學習之樸素貝葉斯Naïve Bayes (一)

一、貝葉斯定理

        貝葉斯分類是一類分類算法的總稱,這類算法以貝葉斯定理為基礎,故統稱為貝葉斯分類。貝葉斯定了解決了現實生活中經常遇到的問題:已知某條件機率,如何得到事件交換後的機率,即在已知P(A|B)的情況下求得P(B|A)。條件機率P(A|B)表示事件B已經發生的前提下,事件A發生的機率,叫做事件B條件下發生事件A的條件機率。其基本求解公式為:P(A|B)=P(AB)/P(B)。貝葉斯定理:

機器學習之樸素貝葉斯Naïve Bayes (一)

        貝葉斯的主要思想可以概括為:先驗機率+資料=後驗機率。貝葉斯定理換個表達形式:

機器學習之樸素貝葉斯Naïve Bayes (一)

二、樸素貝葉斯分類的原理

        樸素貝葉斯的含義是:樸素——特征條件獨立,貝葉斯——基于貝葉斯定理。樸素貝葉斯分類是一種十分簡單的分類方法,這種分類的思想真的很樸素:對于給出的待分類項,求解此項條件下各個類别出現的機率,機率最大的類别就認為此項屬于該類别。舉例來說,在街上看到一個黑人,十之八九猜測他是來自非洲,為什麼呢?因為黑人裡非洲人的比例最高,當然他也有可能是美洲人或亞洲人,但在沒有其他可用資訊的條件下,會選擇條件機率最大的類别,這就是樸素貝葉斯的思想基礎。

樸素貝葉斯分類的定義

1、設

機器學習之樸素貝葉斯Naïve Bayes (一)

為一個待分類項,每個a是x的一個特征屬性。

2、類别集合

機器學習之樸素貝葉斯Naïve Bayes (一)

3、計算

機器學習之樸素貝葉斯Naïve Bayes (一)

4、如果

機器學習之樸素貝葉斯Naïve Bayes (一)

,則

機器學習之樸素貝葉斯Naïve Bayes (一)

        現在的關鍵是如何計算第3步中的各條件機率。

1、找到一個已知分類的待分類項集合,該集合稱為訓練樣本集。

2、統計各類别下各特征屬性的條件機率,即

機器學習之樸素貝葉斯Naïve Bayes (一)

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

機器學習之樸素貝葉斯Naïve Bayes (一)

        因為分母對于所有類别均為常數,是以隻要将分子最大化即可。又因為各特征屬性是條件獨立的,是以有:

機器學習之樸素貝葉斯Naïve Bayes (一)

三、樸素貝葉斯的參數估計

        隻要求出

機器學習之樸素貝葉斯Naïve Bayes (一)

機器學習之樸素貝葉斯Naïve Bayes (一)

,通過比較就可以得到樸素貝葉斯的推斷結果。

3.1 多項式模型

        當特征是離散的時候,使用多項式模型。多項式模型在計算先驗機率

機器學習之樸素貝葉斯Naïve Bayes (一)

和條件機率

機器學習之樸素貝葉斯Naïve Bayes (一)

時,會做一些平滑處理。

機器學習之樸素貝葉斯Naïve Bayes (一)

        N是樣本總數,k是類别總數,

機器學習之樸素貝葉斯Naïve Bayes (一)

是類别為yk的樣本個數,λ是平滑值。

機器學習之樸素貝葉斯Naïve Bayes (一)
機器學習之樸素貝葉斯Naïve Bayes (一)

是類别為yk的樣本個數,n是特征維數,

機器學習之樸素貝葉斯Naïve Bayes (一)

是類别為yk的樣本中第i維特征的值是xi的樣本個數,λ是平滑值。

        當λ=1時,稱為Laplace平滑,當0<λ<1時,稱為Lidstone平滑,λ=0時不做平滑。

        如果不做平滑,當某一維特征的值xi沒在訓練樣本中出現過時,會導緻

機器學習之樸素貝葉斯Naïve Bayes (一)

,進而導緻後驗機率為0,加上平滑後可以克服這個問題。

3.2 高斯模型

        當特征是連續變量的時候,運用多項式模型會導緻很多

機器學習之樸素貝葉斯Naïve Bayes (一)

,即使做平滑,所得到的條件機率也難以描述其真實情況,是以處理連續的特征變量,應該采用高斯模型。高斯模型假設每一維特征都服從高斯分布:

機器學習之樸素貝葉斯Naïve Bayes (一)
機器學習之樸素貝葉斯Naïve Bayes (一)

分别表示類别為yk的樣本中第i維特征的均值和方差。

3.3 伯努利模型

        與多項式模型一樣,伯努利模型适用于離散特征的情況,不同的是,伯努利模型中每個特征的取值隻能是0和1。伯努利模型中,條件機率

機器學習之樸素貝葉斯Naïve Bayes (一)

的計算方式是:

當特征值xi=1時,

機器學習之樸素貝葉斯Naïve Bayes (一)

當特征值xi=0時,

機器學習之樸素貝葉斯Naïve Bayes (一)

四、樸素貝葉斯分類流程

第一階段:

        準備工作階段:确定特征屬性、擷取訓練樣本

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

第二階段:

        分類器訓練階段:對每個類别計算

機器學習之樸素貝葉斯Naïve Bayes (一)

,對每個特征屬性計算所有劃分的條件機率

        這個階段的任務是生成分類器,輸入是特征屬性和訓練樣本,輸出是分類器。主要工作是計算每個類别在訓練樣本中出現的頻率及每個特征屬性劃分對每個類别的條件機率估計,這一階段是機械性階段,根據前面的公式由程式自動完成。

第三階段:

        應用階段:對每個類别計算

機器學習之樸素貝葉斯Naïve Bayes (一)

,以最大項作為x所屬類别

五、樸素貝葉斯算法過程

        輸入:訓練資料

機器學習之樸素貝葉斯Naïve Bayes (一)

,其中

機器學習之樸素貝葉斯Naïve Bayes (一)

機器學習之樸素貝葉斯Naïve Bayes (一)

是第i個樣本的第j個特征,

機器學習之樸素貝葉斯Naïve Bayes (一)

機器學習之樸素貝葉斯Naïve Bayes (一)

是第j個特征可能取的第l個值,

機器學習之樸素貝葉斯Naïve Bayes (一)

;執行個體x

        輸出:執行個體x的分類

(1)計算先驗機率及條件機率

機器學習之樸素貝葉斯Naïve Bayes (一)

(2)對于給定的執行個體

機器學習之樸素貝葉斯Naïve Bayes (一)

,計算

機器學習之樸素貝葉斯Naïve Bayes (一)

(3)确定執行個體x的分類

機器學習之樸素貝葉斯Naïve Bayes (一)

六、樸素貝葉斯算法小結

樸素貝葉斯的主要優點有:

(1)樸素貝葉斯模型發源于古典數學理論,有穩定的分類效率。

(2)對小規模的資料表現很好,能處理多分類任務,适合增量式訓練,尤其是資料量超出記憶體時,可以一批批地增量訓練。

(3)對缺失資料不太敏感,算法比較簡單,常用于文本分類。

樸素貝葉斯的主要缺點有:

(1)理論上,樸素貝葉斯模型與其他分類方法相比具有最小的誤差率。但是實際上并非總是如此,這是因為樸素貝葉斯模型給定輸出類别的情況下,假設屬性之間互相獨立,這個假設在實際應用中往往是不成立的,在屬性個數比較多或者屬性之間相關性較大時,分類效果不好。而在屬性相關性較小時,樸素貝葉斯性能最為良好。對于這一點,有半樸素貝葉斯之類的算法通過考慮部分關聯性适度改進。

(2)需要知道先驗機率,且先驗機率很多時候取決于假設,假設的模型可以有很多種,是以在某些時候會由于假設的先驗模型的原因導緻預測效果不佳。

(3)由于我們是通過先驗和資料來決定後驗的機率進而決定分類,是以分類決策存在一定的錯誤率。

(4)對輸入資料的表達形式很敏感。

繼續閱讀