朴素贝叶斯法 | Jason Hao's Blog
0%

朴素贝叶斯法

问题描述

数据集:\(D={(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)}\). 其中 \(x\in X, X\subseteq \mathbf{R}^n\); \(y\in Y, Y={c_1, C_2, ..., C_K}\).

当给定一个新的数据 \(x\),它的分类是什么? 即求 \(P(Y=c_k|X=x)=\frac{P(Y=c_k)P(X=x|Y=c_k)}{P(X=x)}=\frac{P(Y=c_k)P(X=x|Y=c_k)}{\sum_{k'}P(Y=c_{k'})P(X=x|Y=c_{k'})}\)

问题建模

为此对于上面的问题,最重要的是对先验概率 \(P(Y=c_k), k=1,2,...,K\) 和条件概率 \(P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k), k=1,2,...,K\) 进行建模,或者说对联合概率 \(P(X,Y)=P(Y)P(X|Y)\) 进行建模.

最终 \(x\) 的分类为 \(y=f(x)=\underset{c_k}{argmax}\frac{P(Y=c_k)P(X=x|Y=c_k)}{\sum_{k'}P(Y=c_{k'})P(X=x|Y=c_{k'})}\)

条件独立性假设

假设 \(x\) 的每一个维度都有 \(V\) 个取值,那么所需要的参数个数是 \(K\times V^n\), 为此,朴素贝叶斯对条件概率分布做了条件独立性假设,令 \(P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k)=\prod_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)\),这样联合概率的参数个数变为了 \(K\times n \times V\)

参数估计

最大后验概率估计

对于先验概率 \(P(Y=c_k)=\frac{\sum_{i=1}^N I(y_i=c_k)}{N}, k=1,2,...,K\)

对于条件概率 \(P(X^{(j)}=a_{jv}|Y=c_k)=\frac{\sum_{i=1}^N I(a_{jv}, y_i=c_k)}{\sum_{i=1}^N I(y_i=c_k)}, j=1,2,...,n; v=1,2,...,V; k=1,2,...,K\)

贝叶斯估计

对于先验概率 \(P(Y=c_k)=\frac{\sum_{i=1}^N I(y_i=c_k)}{N}, k=1,2,...,K\)

对于条件概率 \(P(X^{(j)}=a_{jv}|Y=c_k)=\frac{\sum_{i=1}^N I(a_{jv}, y_i=c_k)+\lambda}{\sum_{i=1}^N I(y_i=c_k)+V\lambda}, j=1,2,...,n; v=1,2,...,V; k=1,2,...,K\)

为每个特征维度 \(x^{(j)}\) 的每种取值,预先存在 \(\lambda\) 个样例,这样对那些没有出现过的样例的概率进行平滑,不至于概率为 0,当 \(\lambda=1\) 时,称为拉普拉斯平滑

参考 (References)

  1. 《统计学习方法第2版》