精细推导机器学习:朴素贝叶斯模型原理
1 - 基础定理与定义
-
条件概率公式:
\[P(A|B)=\dfrac{P(AB)}{P(B)} \] -
全概率公式:
\[P(A)=\sum_{j=1}^N P(AB_i)=\sum_{j=1}^N P(B_i)P(A|B_i) \] -
贝叶斯公式:
\[P(B_i|A)=\dfrac{P(AB_i)}{P(A)}=\dfrac{P(B_i)P(A|B_i)}{\sum_{j=1}^N P(B_i)P(A|B_i)} \] -
概率加和规则:
\[P\left(X=x_i\right)=\sum_{j=1}^N P\left(X=x_i,Y=y_j\right) \]\[P\left(X\right)=\sum_Y P\left(X,Y\right) \] -
概率乘积规则:
\[P\left(X=x_i,Y=y_j\right)=P\left(Y=y_j|X=x_i\right)P\left(X=x_i\right) \]\[P\left(X,Y\right)=P\left(Y|X\right)P\left(X\right) \] -
生成学习方法:
利用训练数据学习\(P(X|Y)\)和\(P(Y)\)的估计,得到联合概率分布:
\[P(X,Y)=P(Y)P(X|Y) \]然后求得后验概率分布\(P(Y|X)\). 具体概率估计方法可以是极大似然估计或者贝叶斯估计。
2 - 模型简述
朴素贝叶斯(\(naive\) \(Bayes\))是基于贝叶斯定理与特征条件独立假设的分类方法。
对于给定的训练数据集,首先基于条件独立假设,学习输入输出的联合概率分布;然后基于此模型,对给定的输入\(x\),利用贝叶斯定理,求出后验概率最大的输出类\(y\)。
后验概率最大等价于\(0-1\)损失函数时的期望风险最小化。
作为典型的生成学习方法,朴素贝叶斯实现简单,学习和预测效率都很高,是一种常用模型。
以下主要介绍经典的多项式贝叶斯分类器。
3 - 模型假设
-
训练集\(P(X,Y)\)独立同分布产生
-
条件独立性假设。用于分类的特征,在类确定的条件下独立,即:
\[\begin{aligned} P\left(X=x | Y=c_{k}\right) &=P\left(X^{(1)}=x^{(1)}, \cdots, X^{(n)}=x^{(n)} | Y=c_{k}\right) \\ &=\prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right) \end{aligned} \]这是一个较强的假设。在对性能作出一些妥协的条件下,此假设使模型包含条件概率的数量大为减少,使模型的学习与预测大为简化,从而高效而易于实现。
条件独立性假设也可视为最简单的有向概率图模型。
4 - 模型主要策略
- 极大似然估计
- 最大化后验概率
5 - 模型输入
训练集\(T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\}\),\(x_i\in\mathcal{X} \subseteq \mathbf{R}^{n}\),\(i=1,2,\dots,N\),\(y\in\mathcal{Y}=\{c_1,c_2,\dots,c_k\}\),\(|\mathcal{Y}|=K\);\(x_{i}=\left(x_{i}^{(1)}, x_{i}^{(2)}, \cdots, x_{i}^{(n)}\right)^{\mathrm{T}}\),\(x_{i}^{\left(j\right)}\)是第\(i\)个样本的第\(j\)个特征,\(j=1,2,\dots,n\),\(x_{i}^{\left(j\right)}\in\{a_{j1},a_{j2},\dots,a_{jS_j}\}\),其中\(a_{jl}\)是第\(j\)个特征的第\(l\)个取值,\(l=1,2,\dots,S_j\).
另有实例\(x\).
6 - 模型推导
由假设可得
取后两个等式,处理变换得:
以上第二个等号使用了概率加和法则,第三个等号使用了条件概率公式,后两个等号使用了条件独立性假设。
朴素贝叶斯可用直接用分子表示为:
注意到在公式\((10)\)中,分母的值对所有的\(c_k\)都相等,因此可舍去分母,得到:
7 - 参数估计
- 极大似然估计
-
先验概率:
\[P\left(Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)}{N}, \quad k=1,2, \cdots, K \] -
条件概率:
\[\begin{array}{l}{P\left(X^{(j)}=a_{j t} | Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(x_{i}^{(j)}=a_{j l}, y_{i}=c_{k}\right)}{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)}} \\ {j=1,2, \cdots, n ; l=1,2, \cdots, S_{j}: k=1,2, \cdots, K}\end{array} \]
其中函数\(I\)为指示函数。
- 贝叶斯估计
如果某个属性值在训练集中没有与某个类同时出现过,则使用公式\((10)\)进行概率估计则会出现\(0\),并导致连乘氏计算的概率值也为\(0\)。为防以上情况出现,引入贝叶斯估计如下。
-
先验概率:
\[P_{\lambda}\left(X^{(j)}=a_{j l} | Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(x_{i}^{(j)}=a_{j l}, y_{i}=c_{k}\right)+\lambda}{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)+S_{j} \lambda} \]式中\(\lambda \geqslant 0\).
-
条件概率:
\[P_{\lambda}\left(Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)+\lambda}{N+K \lambda} \]
当\(\lambda=0\)时,即等价为极大似然估计。
常用\(\lambda=1\),称为拉普拉斯平滑。
考虑公式\((14)\),对于任何\(l=1,2, \cdots, S_{j}, \quad k=1,2, \cdots, K\),都有
可见确实是一种分布。公式\((15)\)同理。拉普拉斯平滑的实质是假设属性值与类别是均匀分布,这是额外引入的关于数据先验。它修正了训练集样本不充分而导致概率值为\(0\)的问题,且在训练集变大时,修正引入的先验影响也会逐渐变得可以忽略。
8 - 算法流程(极大似然估计)
输入:见5. 另有实例\(x\).
输出:实例\(x\)的分类.
- 计算先验概率与条件概率:
-
先验概率(共计\(K\)个式子):
\[P\left(Y=c_{k}\right)=P\left(Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)}{N} \] -
条件概率(共计\(k\sum_{j=1}^{n}S_j\)个式子):
\[\begin{array}{l}{P\left(X^{(j)}=a_{j t} | Y=c_{k}\right)=\frac{\sum_{i=1}^{N} I\left(x_{i}^{(j)}=a_{j l}, y_{i}=c_{k}\right)}{\sum_{i=1}^{N} I\left(y_{i}=c_{k}\right)}} \\ {j=1,2, \cdots, n ; l=1,2, \cdots, S_{j}: k=1,2, \cdots, K}\end{array} \]
-
对于给定实例\(x=\left(x_{i}^{(1)}, x_{i}^{(2)}, \cdots, x_{i}^{(n)}\right)^{\mathrm{T}}\),计算:
\[P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right), \quad k=1,2, \cdots, K \] -
确定实例\(x\)的分类:
\[y=\arg \max _{a} P\left(Y=c_{k}\right) \prod_{j=1}^{n} P\left(X^{(j)}=x^{(j)} | Y=c_{k}\right) \]
9 - 高斯贝叶斯分类器
以上是基础的多项式贝叶斯分类器,用于自变量均为离散值的情况。
如果数据集中的自变量均为连续的数值型数据,则选择本章的高斯贝叶斯分类器。
假设自变量特征\(x^{\left(j\right)}\)服从高斯分布,即:
其中\(\mu_{j,k}\)和\(\sigma_{j,k}\)为训练集中特征\(x^{\left(j\right)}\)属于类别\(c_{k}\)的均值和标准差,则条件概率可以表示为:
其他步骤与思想不变,参考多项式贝叶斯分类器即可。
10 - 伯努利贝叶斯分类器
在某些任务,如文本挖掘中,特征\(x^{\left(j\right)}\)均为\(0-1\)二元值,此时优选伯努利贝叶斯分类器。
假设特征\(x^{\left(j\right)}\)的条件概率为满足伯努利分布。
设特征\(x^{\left(j\right)}\in\{0,1\}\),则记:
因此可将条件概率写为:
其他步骤与思想不变,参考多项式贝叶斯分类器即可。
11 - 番外:为何没有出现损失函数?
以下证明期望风险最小化等价于后验概率最大化。
设选择\(0-1\)损失函数:
式中\(f(X)\)为分类决策函数。此时期望风险为:
期望是对联合分布\(P(X,Y)\)取的,因此再取条件期望:
为使期望风险最小化,需要对\(X=x\)逐个极小化,即:
注意从第一行到第二个行,对于损失函数\(L(c_k,y)\),如果\(y=c_k\),则损失函数\(L(c_k,y)=0\),后一项也同时失效,只有当\(y\neq c_k\)时,损失函数\(L(c_k,y)=1\),后一项才有效,因此后一项也可以写成第二行的形式以简化算式。从第二行到第三行也容易理解。从第三行到第四行可以注意到\(\arg\min\)变成了\(\arg\max\),已经从损失函数最大小化转化为后验概率最大化。可知期望风险最小化等价于朴素贝叶斯采用的后验概率最大化:
浙公网安备 33010602011771号