朴素贝叶斯法是基于贝叶斯定理与条件独立假设的分类方法。对给定的训练数据集,首先基于 特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入 x ,利用 贝叶斯定理求出后验概率最大的输出 y 。此方法实现简单,学习与预测的效率都很高。
学习与分类
基本方法
- 训练集:\( T=\{(x_1,y_1),...,(x_N,y_N)\} \),由 \(x\) 和 \(y\) 的联合分布概率 \(P(X,Y)\) 独立同分布产生
- 朴素贝叶斯通过训练数据集学习联合概率分布\(P(X,Y)\),即:
- 先验概率分布:\(P(Y=c_k), k=1,2,...,K\)
- 条件概率分布:\(P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},...,X^{(n)}=x^{(n)}|Y=c_k)\)
- 条件独立性假设(牺牲分类准确性): \( \begin{aligned} P(X=x|Y=c_k)&=P(X^{(1)}=x^{(1)},X^{(2)}=x^{(2)},...,X^{(n)}=x^{(n)}|Y=c_k) \\& =\prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k) \end{aligned} \)
- 贝叶斯定理: \(P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_kP(X=x|Y=c_k)P(Y=c_k)}\)
- 代入:
\[ P(Y=c_k|X=x) = \frac{ P(Y=c_k) \prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum\limits_k P(Y=c_k) \prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)} \]
- 贝叶斯分类器:
\[ y = f(x) =arg \max\limits_{c_k}\frac{ P(Y=c_k) \prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum\limits_k P(Y=c_k) \prod\limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k)} \]
后验概率最大化
朴素贝叶斯法将实例分到后验概率最大的类中,等价于期望风险最小化,其中,损失函数为 0-1 损失。
参数估计
极大似然估计
先验概率 \(P(Y=c_k)\) 的极大似然估计是:
\[ P(Y=c_k) = \frac{\sum\limits_{i=1}^NI(y_i=c_k)}{N} \]
条件概率的极大似然估计是:
\[ P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum\limits_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)} {\sum\limits_{i=1}^NI(y_i=c_k)} \]
朴素贝叶斯算法
输入:
- 训练数据集:\( T= \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} \),其中:
- \(x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(n)})^T \)
- \( x_i^{(j)}\) 是第 \(i\) 个样本的第 \(j\) 个特征:\( x_i^{(j)} \in \{a_{j1}, a_{j2},...,a_{jS_i}\} \)
- \(a_{jl}\) 是第 \(j\) 个特征可能取的的第 \(l\) 个值
- \(y_i \in \{c_1,c_2,...,c_k\}\)
- 实例 \(x\)
输出:\(x\) 的分类
- 计算先验概率 \(P(Y=c_k)\) 及条件概率 \(P(X^{(j)}=a_{jl}|Y=c_k)\)
- 对给定的实例 \(x\) ,计算 \(P(Y=c_k)\prod\limits_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)\)
- 确定 \(x\) 的类别
贝叶斯估计
用极大似然估计可能会出现所要估计的概率值为0的情况,会影响后验概率的结果,产生偏差,解决 办法是采用贝叶斯估计。
先验概率 \(P(Y=c_k)\) 的贝叶斯估计是:
\[ P(Y=c_k) = \frac{\sum\limits_{i=1}^N{I(y_i=c_k)+\lambda}}{N+K\lambda} \]
条件概率的贝叶斯估计是:
\[ P(X^{(j)}=a_{jl}|Y=c_k)=\frac{\sum\limits_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)+\lambda} {\sum\limits_{i=1}^NI(y_i=c_k)+S_j\lambda} \]
其中\(\lambda \ge 0\),等价于在随机变量各个取值的频数上赋予一个正数\(\lambda \gt 0\)。
当\(\lambda = 0\) 时,即极大似然估计;常取\(\lambda = 1\),称为拉普拉斯平滑。
参考
- 李航,统计学习方法,清华大学出版社
公式改为
katex
实现