Naive Bayes 的学习与分类

基本方法

设输入空间 $\mathcal{X}\subseteq R^n$ 为 $n$ 维向量的集合,输出空间为类标记集合 $\mathcal{Y}=\{c_1, c_2, \dots, c_k\}$

输入为特征向量 $x\in\mathcal{X}$,输出为类标记 $y\in\mathcal{Y}$

$X$ 是定义在输入空间 $\mathcal{X}$ 上的随机向量,$Y$ 是定义在输出空间 $\mathcal{Y}$ 上的随机变量

$P(X, Y)$ 是 $X$ 和 $Y$ 的联合概率分布

训练数据集 $T=\{(x_1, y_1), (x_2, y_2), \dots, (x_N,y_N)\}$ 是由 $P(X, Y)$ 独立同分布产生


由训练数据集 $T$ 我们便可以得出先验概率分布

$$ P(Y=c_k),\space k=1, 2, \dots, K $$

以及条件概率分布

$$ P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)}, \dots, X^{(n)}=x^{(n)}|Y=c_k), \space k=1, 2, \dots, K $$

于是我们便学习到了联合概率分布 $P(X, Y)$


在朴素贝叶斯中我们对条件概率分布作了条件独立性的假设,于是有:

$$ P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)}, \dots, X^{(n)}=x^{(n)}|Y=c_k)=\prod_{i=1}^{n}P(X^{(i)}=x^{(i)}|Y=c_k) $$

显然,条件独立性这一假设使得计算变得非常简单,同时,这也会牺牲一定的分类准确率。


在分类时,对于给定的输入 $x$,我们通过已知的模型来计算后验概率分布 $P(Y=c_k|X=x)$,挑选后验概率最大的类别作为 $x$ 的输出,便是朴素贝叶斯法的分类。

接下来我们推导一下如何计算后验概率:

首先,补充一点基础知识,条件概率

$$ P(A|B)=\frac{P(A, B)}{P(B)} $$

于是我们可以引申出

$$ P(A,B)=P(A|B) \cdot P(B) $$

$$ P(A,B)=P(B|A) \cdot P(A) $$

联立可得,贝叶斯公式的常规形式为

$$ P(A|B)=\frac{P(B|A)P(A)}{P(B)} $$

全概率公式:若事件 $B_1, B_2, \dots, B_n$ 是样本空间 $\Omega$ 的一个划分,则

$$ P(A)=\sum_{i=1}^{n}P(A, B_i) $$

结合条件概率公式可得

$$ P(A)=\sum_{i=1}^{n}P(A|B_i)P(B_i) $$

于是,我们可以将其与贝叶斯公式结合得到

$$ P(A|B)=\frac{P(B|A)P(A)}{\sum_{i=1}^{n}P(B|A_i)P(A_i)} $$


同理,我们在求后验概率时便可根据贝叶斯定理进行

$$ P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_{i=1}^{k}P(X=x|Y=c_i)P(Y=c_i)} $$

已知,在朴素贝叶斯中

$$ P(X=x|Y=c_k)=\prod_{i=1}^{n}P(X^{(i)}=x^{(i)}|Y=c_k) $$

代入得

$$ P(Y=c_k|X=x)=\frac{P(Y=c_k)\prod_{i=1}^{n}P(X^{(i)}=x^{(i)}|Y=c_k)}{\sum_{i=1}^{k}P(Y=c_i)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_i)}, \space k=1, 2, \dots, K $$


综上,我们的朴素贝叶斯分类器便可以表示为

$$ y=f(x)=\arg \max_{c_k}\frac{P(Y=c_k)\prod_{i=1}^{n}P(X^{(i)}=x^{(i)}|Y=c_k)}{\sum_{i=1}^{k}P(Y=c_i)\prod_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_i)} $$

仔细观察可以发现,式子中的分母不受 $c_k$ 的影响,因此该分类器可以简化为

$$ y=f(x)=\arg \max_{c_k}P(Y=c_k)\prod_{i=1}^{n}P(X^{(i)}=x^{(i)}|Y=c_k) $$


后验概率最大化的含义

朴素贝叶斯法将实例分到后验概率最大的类别中,这等价于期望风险最小化。

假设我们选择0-1损失函数:

$$ L(Y, f(X)) = \begin{cases} 1, & Y \neq f(X) \\ 0, & Y = f(X) \end{cases} $$

此时,期望风险函数为

$$ \begin{eqnarray} R_{exp}(f) &=& E_p[L(Y, f(X))]\\ &=&\int_{\mathcal{X}\times\mathcal{Y}}L(y,f(x))P(x,y)dxdy\\ &=&\int_{\mathcal{X}\times\mathcal{Y}}L(y,f(x))P(y|x)P(x)dxdy\\ &=&\int_{\mathcal{X}}[\int_{\mathcal{Y}}L(y,f(x))P(y|x)dy]P(x)dx \end{eqnarray} $$

要使期望风险最小化,由于每一个 $P(X=x)$ 都是常数,则只需内层积分最小即可。

其中,内层积分 $\int_{\mathcal{Y}}L(y,f(x))P(y|x)dy$ 称为在 $X=x$ 时 $y$ 的条件期望,综上,期望风险最小等价于条件期望最小。

由此取条件期望

$$ R_{exp}(f)=E_x\sum_{k=1}^{K}[L(c_k, f(X))]P(c_k|X) $$

为了使期望风险最小化,只需对 $X=x$ 逐个极小化,由此得到

$$ \begin{eqnarray} f(x)&=&\arg\min_{y\in\mathcal{Y}}\sum_{k=1}^{K}L(c_k, y)P(c_k|X=x)\\ &=&\arg\min_{y\in\mathcal{Y}}\sum_{k=1}^{K}P(y\not=c_k|X=x)\\ &=&\arg\min_{y\in\mathcal{Y}}(1-P(y=c_k|X=x))\\ &=&\arg\max_{y\in\mathcal{Y}}P(y=c_k|X=x) \end{eqnarray} $$

这样一来,根据期望风险最小化准则就得到了后验概率最大化准则

$$ f(x)=\arg\max_{c_k}P(c_k|X=x) $$

即朴素贝叶斯法所采取的原理


文中公式较多,难免可能存在一些编辑上或者理解上的错误,望发现后指出。

参考资料:《统计学习方法》李航


我想对千千说~

2 只已被捕捉

  • sun Apple Safari | 604.1 iPhone 12_1_2

    千千,你的博客导航菜单怎么做到固定,向下划动又可以自动隐藏?

    • 千千 Chrome | 75.0.3770.142 Windows 10/11

      用 js 检测页面是否向上或者向下滚动,然后改变菜单栏的 top 属性