樸素貝葉斯算法的理論基礎:
- 貝葉斯定理(貝葉斯後驗概率公式)
- 條件獨立性假設
- 生成模型
生成模型與判別模型
特性 | 判別模型(Discriminative model) | 生成模型(Generative model) |
---|---|---|
特點 | 尋找不同類別之間的最優分類超曲面,反應的是異類數據之間的差異 | 對後驗概率建模,從統計的角度表示數據的分佈情況,能夠反應同類數據本身的相似度 |
區別 | 估計的是條件概率分佈(Conditional Distribution):P(Y|X) | 估計的是聯合概率分佈(Joint Probability Distribution):P(X,Y) |
聯繫 | 由生成模型可以得到判別模型 | 由判別模型無法得到生成模型 |
常見模型 | 邏輯迴歸、SVM、MLP、KNN | Navie Bayes、GMM、HMM |
樸素貝葉斯的數學原理:
根據貝葉斯定理,對於一個分類問題,給定樣本特徵 ,樣本屬於類別 的概率爲:
其中 是特徵向量,假設它的維度爲 ,則:
由於樸素貝葉斯法對條件概率分佈做了條件獨立性的假設
因此 可直接使用連乘計算:
其中 爲某一類別
將連乘式其帶入貝葉斯公式可得:
由此樸素貝葉斯分類器可數學化的表示爲:
* argmax(f(x))指的是使得 f(x)取得最大值所對應的變量x,放在此公式內即是貝葉斯公式取得最大值時對應的 的值
由於argmaxz最終取得的是參數 且對任意一個 , 的分佈是相同的,去掉 不影響找出貝葉斯公式取得最大值時 的值,所以可簡化爲:
條件概率的參數估計:
樸素貝葉斯算法的學習過程主要是估計 以及
對於類別概率估計 可以使用如下的公式進行估計 :
但是對於 的概率估計,我們需要根據每一維 分兩種情況討論:
- 是離散型變量
- 是連續型變量
特徵值爲離散型變量時的參數估計
當特徵值爲離散型變量時,這時候參數估計非常簡單,我們只需要計算出每個特徵值在相應的類中出現的概率就可以了。
直接使用如下的公式進行估計:
特徵值爲連續型變量時的參數估計
當特徵值爲連續型變量時,我們對條件概率分佈 進行估計時,我們無法使用像離散型變量那樣直接求概率。
因此,我們需要使用新的方式:常用的方式就是假設 服從某一分佈,如高斯分佈、多項式分佈以及伯努利分佈等。
以高斯分佈(正態分佈)爲例:
貝葉斯估計:
爲了避免有些樣本現實中存在而測試集中卻沒有,導致從樣本中算出概率爲0的情況,我們需要給學習步驟中的兩個概率公式的分子分母都加上一個數值較小的常數:
中的K是類的個數
中的 是第j維特徵的最大取值個數。
這樣當 類不存在與測試集上(即未加常數前概率爲0時),最終算出的概率爲 或 ,而不是0。
特別的,當上述估計中的 取值爲1時,稱爲拉普拉斯平滑(Laplace Smoothing)