樸素貝葉斯 Navie Bayes

樸素貝葉斯算法的理論基礎:

  1. 貝葉斯定理(貝葉斯後驗概率公式)
  2. 條件獨立性假設
  3. 生成模型

生成模型與判別模型

特性 判別模型(Discriminative model) 生成模型(Generative model)
特點 尋找不同類別之間的最優分類超曲面,反應的是異類數據之間的差異 對後驗概率建模,從統計的角度表示數據的分佈情況,能夠反應同類數據本身的相似度
區別 估計的是條件概率分佈(Conditional Distribution):P(Y|X) 估計的是聯合概率分佈(Joint Probability Distribution):P(X,Y)
聯繫 由生成模型可以得到判別模型 由判別模型無法得到生成模型
常見模型 邏輯迴歸、SVM、MLP、KNN Navie Bayes、GMM、HMM

這裏寫圖片描述

樸素貝葉斯的數學原理:

根據貝葉斯定理,對於一個分類問題,給定樣本特徵x ,樣本屬於類別y 的概率爲:

P(y|x)=P(x|y)×P(y)P(x)
其中x 是特徵向量,假設它的維度爲d ,則:
P(y|x)=P(x1,x2,x3,...,xd|y)×P(y)P(x)
由於樸素貝葉斯法對條件概率分佈做了條件獨立性的假設
因此P(x1,x2,x3,...,xd|y) 可直接使用連乘計算:
P(x1,x2,x3,...,xd|y=ck)=i=0dP(xi|y=ck)
其中ck 爲某一類別
將連乘式其帶入貝葉斯公式可得:
P(y=ck|x)=i=0dP(xi|y=ck)×P(y=ck)P(x)
由此樸素貝葉斯分類器可數學化的表示爲:
y=argmaxcki=0dP(xi|y=ck)×P(y=ck)P(x)
* argmax(f(x))指的是使得 f(x)取得最大值所對應的變量x,放在此公式內即是貝葉斯公式取得最大值時對應的ck 的值

由於argmaxz最終取得的是參數ck 且對任意一個ckP(x) 的分佈是相同的,去掉P(x) 不影響找出貝葉斯公式取得最大值時ck 的值,所以可簡化爲:

y=argmaxcki=0dP(xi|y=ck)×P(y=ck)

條件概率的參數估計:

樸素貝葉斯算法的學習過程主要是估計P(y=ck) 以及P(xj|y=ck)
對於類別概率估計P(y=ck) 可以使用如下的公式進行估計 :

P(y=ck)=i=1NI(yi=ck)N,k=1,2,...,K

但是對於P(xj|y=ck) 的概率估計,我們需要根據每一維xj 分兩種情況討論:

  1. xj 是離散型變量
  2. xj 是連續型變量

特徵值爲離散型變量時的參數估計
當特徵值爲離散型變量時,這時候參數估計非常簡單,我們只需要計算出每個特徵值在相應的類中出現的概率就可以了。

直接使用如下的公式進行估計:

P(X(j)=x(j)|y=ck)=i=1NI(X(j)=x(j),y=ck)i=1NI(yi=ck),k=1,2,...,K

特徵值爲連續型變量時的參數估計
當特徵值爲連續型變量時,我們對條件概率分佈P(xj|y=ck) 進行估計時,我們無法使用像離散型變量那樣直接求概率。

因此,我們需要使用新的方式:常用的方式就是假設P(xj|y=ck) 服從某一分佈,如高斯分佈、多項式分佈以及伯努利分佈等。

以高斯分佈(正態分佈)爲例:

P(X(j)=x(j)|y=ck)=12πδy2exp((xiuy)22δy2)

貝葉斯估計:
爲了避免有些樣本現實中存在而測試集中卻沒有,導致從樣本中算出概率爲0的情況,我們需要給學習步驟中的兩個概率公式的分子分母都加上一個數值較小的常數:

P(y=ck)=i=1NI(yi=ck)+λN+Kλ,k=1,2,...,K
Kλ 中的K是類的個數
P(X(j)=x(j)|y=ck)=i=1NI(X(j)=x(j),y=ck)+λi=1NI(yi=ck)+Ljλ,k=1,2,...,K
Ljλ 中的Lj 是第j維特徵的最大取值個數。

這樣當ck 類不存在與測試集上(即未加常數前概率爲0時),最終算出的概率爲1K1Lj ,而不是0。

特別的,當上述估計中的λ 取值爲1時,稱爲拉普拉斯平滑(Laplace Smoothing)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章