朴素贝叶斯法是基于贝叶斯定理与条件独立假设的分类方法。对给定的训练数据集,首先基于 特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入 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\) 的分类

  1. 计算先验概率 \(P(Y=c_k)\) 及条件概率 \(P(X^{(j)}=a_{jl}|Y=c_k)\)
  2. 对给定的实例 \(x\) ,计算 \(P(Y=c_k)\prod\limits_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)\)
  3. 确定 \(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实现