樸素貝葉斯算法中拉普拉斯平滑的證明

? ? ? ? 樸素貝葉斯算法中的拉普拉斯平滑,是為了緩解先驗概率為零的情況。在貝葉斯估計中,使用狄利克雷分布作為先驗分布,來估計多項分布中的參數值,即可得到拉普拉斯平滑。證明如下:

一、狄利克雷分布

? ? ? ? 引入狄利克雷分布的定義,若隨機向量符合狄利克雷分布,即?X ~Dir(X_1, \dots ,X_k;\alpha_1, \dots \alpha_k),其中?X_i \in [0, 1],  \sum_{i}^k X_i = 1,設 \alpha = \sum_{i=1}^k \alpha_i,則?X?的概率密度函數為:

f(X) = \frac{ \prod_{i=1}^k X_i^{\alpha_i - 1} }{ \int_{0}^{1} \dots \int_{0}^{1}  \prod_{i=1}^k X_i^{\alpha_i - 1} dX_1 \dots dX_k  } = \frac{ \prod_{i=1}^k X_i^{\alpha_i - 1} }{  \frac{ \prod_{i=1}^k \Gamma(\alpha_i)  }{ \Gamma(\alpha) }  }


? ? 下面計算隨機向量?X?的分量?X_i?的期望。我們通過計算?X_1?來代替,這仍然不失一般性。X_1?的概率密度函數為:

f_1(X_1) = \frac{ \int_{0}^{1} \dots \int_{0}^{1} \prod_{i=1}^k X_i^{\alpha_i - 1} dX_2 \dots dX_k }{ \int_{0}^{1} \dots \int_{0}^{1}  \prod_{i=1}^k X_i^{\alpha_i - 1} dX_1 \dots dX_k  }

X_1?的期望為:

E(X_1)  = \int_0^1 X_1 f_1(X_1) dX_1 = \frac{ \int_{0}^{1} \dots \int_{0}^{1} X_1^{\alpha_1} \prod_{i=2}^k X_i^{\alpha_i - 1} dX_1 \dots dX_k }{ \int_{0}^{1} \dots \int_{0}^{1}  \prod_{i=1}^k X_i^{\alpha_i - 1} dX_1 \dots dX_k  }= \frac{ \frac{  \Gamma(\alpha_1 + 1) \prod_{i=2}^k \Gamma(\alpha_i)  }{ \Gamma(\alpha + 1) } }{ \frac{ \prod_{i=1}^k \Gamma(\alpha_i)  }{ \Gamma(\alpha) } }  = \frac{ \Gamma(\alpha_1 + 1) \Gamma(\alpha) }{ \Gamma(\alpha_1) \Gamma(\alpha + 1) }  = \frac{ \alpha_1 }{  \alpha }

故,E(X_i) = \frac{ \alpha_i }{ \alpha }


二、多項分布

? ? ? ? 引入多項分布的定義,若隨機向量滿足多項分布,即?X ~ PN(X_1, \dots X_k; p_1, \dots , p_k)?,其中? \sum_{i=1}^k X_i = n, p_i \in [0, 1],  \sum_{i}^k p_i = 1,則?X?的分布律為:

P(X_1 = x_1, \dots , X_k = x_k) = \frac{ n! }{ \prod_{i=1}^k x_i! } \prod_{i=1}^k p_i^{x_i}


? ? ? ? 在多項分布參數的貝葉斯估計中,使用狄利克雷分布作為先驗分布。設 h(p_1, \dots, p_k;\alpha_1, \dots ,\alpha_k)?為狄利克雷分布的概率密度函數,m(X_1, \dots , X_k; p_1, \dots ,p_k)?為多項分布的分布律,則后驗分布為:

P(p_1, \dots ,p_k|X_1, \dots ,X_k) = \frac{ h(p_1, \dots, p_k; \alpha_1, \dots ,\alpha_k) m(X_1, \dots , X_k; p_1, \dots ,p_k) }{ \int_0^1 \dots \int_0^1 h(p_1, \dots, p_k; \alpha_1, \dots ,\alpha_k) m(X_1, \dots , X_k; p_1, \dots ,p_k) dp_1 \dots dp_k}

= \frac{ \prod_{i=1}^k p_i^{x_i + \alpha_i - 1} }{ \int_{0}^{1} \dots \int_{0}^{1}  \prod_{i=1}^k p_i^{x_i + \alpha_i - 1} dp_1 \dots dp_k  } ~ Dir(p_1, \dots , p_k; x_1 + \alpha_1, \dots , x_k + \alpha_k)

? ? ? ? 由于多項分布的后驗分布也是狄利克雷分布,故狄利克雷分布是多項分布的共軛分布。由此可得多項分布參數?p_i?的貝葉斯估計值為:

\hat{p_i}  = E(p_i)  = \frac{ x_i + \alpha_i }{  x + \alpha },x = \sum_{i=1}^k x_i, \alpha = \sum_{i=1}^k \alpha_i


三、拉普拉斯平滑

? ? ? ? 設?(X, Y)?為數據集中的樣本,X?為樣本特征向量,Y?為分類變量。?N?為數據集樣本數,K?為分類個數,c_i,i = 1, \dots, K?表示第 i?個分類,n_i,i = 1, \dots, K?表示數據集中第?i?個分類的樣本數。現在要根據數據集來估計分類的先驗概率P(Y = c_i)

? ? ? ? 由于?\sum_{i=1}^K P(Y = c_i) = 1, \sum_{i=1}^K n_i = N,所以這是一個多項分布的參數估計問題。使用上面已經證明的多項分布參數的貝葉斯估計,并設?\alpha_i = \lambda, i = 1, \dots , K,則:

p(Y = c_i) = \frac{ n_i + \lambda }{ N + K \lambda }

? ? ? ? 根據數據集估計特定分類下特征值的先驗概率,其實就是在該分類的子數據集中進行多項分布的參數估計。按照上面相同的方法,設?n?為特征個數,?S_j, j = 1, \dots, n?為第?j?個特征包含的值個數,x_{j,k}, j = 1, \dots, n; k = 1, \dots, Sj?為第 j?個特征的第 k?個值,n_{i, j, k} ?為第 i?個分類的數據集中第 j?個特征取第?k?個值的樣本數,則:

P(X_j = x_{j,k} | Y = c_i) = \frac{ n_{i,j,k} + \lambda }{ n_i + S_j \lambda }


? ? ? ? 這就證明了樸素貝葉斯算法中的拉普拉斯平滑。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容