问题描述
数据集:\(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)
- 《统计学习方法第2版》