朴素贝叶斯法

朴素贝叶斯法的学习与分类

基本方法

设输入空间$mathcal{X} subseteq R^n $是n维向量的集合,输出空间为类标记集合$mathcal{Y}={c_{1},c_{2},cdots,c_{k}}$.输入为特征向量$x in mathcal{X}$,输出为类标记 (class label)$y in mathcal{Y}$. X是定义在输入空间$mathcal{X}$上的随机向量,Y是定义才输入空间$mathcal{Y}$上的随机变量。P(X,Y)是X和Y的联合概率分布。训练集由P(X,Y)独立同分布产生。

朴素贝叶斯法通过训练数据集学习联合概率分布$P(X,Y)$.具体地,学习以下先验概率分布及条件概率分布。先验概率分布
$$P(Y=c_{k}),k=1,2,\cdots,K$$
条件概率分布
$$P(X=x|Y=c_{k})=P(X^{(1)}=x^{(1)},\cdots,x^{(n)}|Y=c_{k}),\qquad k=1,2,\cdots ,K$$
于是学到联合概率分布P(X,Y)
条件概率分布P(X=x|Y=c_{k})有指数级数量的参数,其估计实际是不可行的。
事实上,假设$x^{(j)}$可取值有$S_{j}$个,$j=1,2,cdots,n,Y$可取值有K个,那么参数个数为$K prod_{j=1}^{n} S_{j}$

朴素贝叶斯法对条件概率分布做了条件独立性的假设。由于这是一个较强的假设,朴素贝叶斯法也由此得名。具体地,条件独立性假设是

$P(X=x|Y=c_{k})=P(X^{(1)},cdots,X^{(n)}|Y=c_{k})=prod_{j=1}^n P(X^{(1)}=x(1),cdots,X^{(j)}=x(j)|Y=c_{k}) qquad(4.3)$

朴素贝叶斯法实际上学习到生成数据的机制,所以属于生成模型。条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。

朴素贝叶斯法分类时,对给定的输入x,通过学习到的模型计算后验概率分布$P(Y=c_{k}|X=x)$将后验概率最大的类作为x的类输出。后验概率计算根据贝叶斯定理进行:

$$P(Y=c_{k}|X=x)=\frac{P(X=x|Y=c_{k})P(Y=c_{k})}{ \sum_{k}{} P(X=x|Y=c_{k})P(Y=c_{k})} \qquad(4.4)$$

将(4.3)带入(4.4)中有

$$P(Y=c_{k}|X=x)=\frac{ \prod_{j} P(X^{(j)}=x^{(j)})|Y=c_{k})\ P(Y=c_{k})}{\sum_{k} P(Y=c_{k}) \prod_{j} P(X^{(j)}=x^{(j)}|Y=c_{k})} \qquad k=1,2,\cdots,K $$

这是朴素贝叶斯分类的基本公式。于是,朴素贝叶斯分类器可表示为
$$y=f(x)=\arg \max \limits_{c_{k}} =\frac{ \prod_{j} P(X^{(j)}=x^{(j)})|Y=c_{k})\ P(Y=c_{k})}{\sum_{k} P(Y=c_{k}) \prod_{j} P(X^{(j)}=x^{(j)}|Y=c_{k})} $$

因为在(4.6)中分母对所有$c_{k}$都是相同的,所以,
$$y= arg \max \limits_{c_{k}} P(Y=c_{k}) \prod_{j} P(X^{(j)}=x^{(j)}|Y=c_{k})$$

后验概率最大化的含义

朴素贝叶斯法将实例分到后验概率最大的类中。这等价于期望风险最小化。假设选择0-1损失函数:

$$L(Y,f(X))= \left\{^{1, Y \neq f(X)}_{0, Y=f(x)} \right. $$

式中$f(x)$是分类决策函数。这时,期望风险函数为
$$R_{exp}(f)=E[L(Y,f(X))]$$

期望是对联合分布$P(X,Y)$取的。由此取条件期望
$$R_{exp} (f)=E_x \sum_{k=1}^{K} [L(c_{k},f((X))] P(c_{k}|X)$$
为了使期望风险最小化,只需要对X=x逐个极小化,由此得到:
$$f(x)=arg \min \limits_{y \in \mathcal{Y}} \sum_{k=1}^{K} L(c_{k},y)P(c_{k}|X=x)$$
$$=arg \min \limits_{y \in \mathcal{Y}} \sum_{k=1}^{K} P(y \neq c_{k} |X=x)$$
$$arg \min \limits_{y \in \mathcal{Y}} 1-P(y=c_{k}|X=x)$$
$$arg \max \limits_{y \in \mathcal{Y}} P(c_{k}|X=x)$$

这样一来,根据期望风险最小化准则就得到了后验概率最大化准则:
$$f(x)=arg \max \limits_{c_{k}} P(c_{k}|X=x)$$
即朴素贝叶斯法所采用的原理

朴素贝叶斯法的参数估计

极大似然估计

在朴素贝叶斯中,学习意味着估计$P(Y=c_{k})$和$P(X^{(j)}Y=c_{k})$.可以应用极大似然估计法估计相应的概率。先验概率$P(Y=c_{k})$的极大似然估计是
$$P(Y=c_{k})=\frac{\sum \limits_{i=1}^{N}I(y_{i}=c_{k})}{N}, \quad k=1,2,\cdots,K \quad (4.8)$$

设第j个特征$x^{(j)}$可能取值的集合为$(a_{j1},a_{j2},cdots,a_{jS_{j}})$,条件概率$P(X^{(j)}=a_{jl}|Y=c_{k})$的极大似然估计是
$$P(X^{(j)}=a_{jl}|Y=c_{k})=\frac{\sum \limits_{i=1}^{N} I(x_{i}^{(j)}=a_{jl}, y_{i}=c_{k})}{\sum \limits_{i=1}^{N}I(y_{i}=c_{k})}$$
$$j=1,2,\cdots,n; l=1,2,\cdots,S_{j}; k=1,2,\cdots,K \quad (4.9)$$

式中,$x_{i}^{(j)}$是第i个样本的第j个特征;$a_{jl}$是第j个特征可能取的第l个值;I为指示函数。

朴素贝叶斯学习和分类算法

(1)先计算先验概率及条件概率
$$P(Y=c_{k}=\frac{\sum \limits_{i=1}^{N}I(y_{i}=c_{k})}{N}), \quad k=1,2,\cdots, K$$
$$P(X^{(j)}=a_{jl}|Y=c_{k})=\frac{\sum \limits_{i=1}^{N} I(x_{i}^{(j)}=a_{jl},y_{i}=c_{k})}{\sum \limits_{i=1}^{N}I(y_{i}=c_{k})}$$
$$j=1,2,\cdots,n; l=1,2,\cdots,S_{j}; k=1,2,\cdots,K$$

(2)对于给定的实例x,计算
$$P(Y=c_{k}) \prod \limits_{j=1}^{n} P(X^{(j)}=x^{(i)}|Y=c_{k}), k=1,2,\cdots,K$$

(3)确定实例x的类
$$y=arg \max \limits_{c_{k}} P(Y=c_{k}) \prod \limits_{j=1}^{n} P(X^{(j)}=x^{(j)}|Y=c_{k})$$# 贝叶斯估计
用极大似然估计可能会出现所要估计得概率值为0的情况。这时会影响到后验概率的计算结果,使分类产生偏差。解决这一问题的方法是采用贝叶斯估计。具体地,条件概率的贝叶斯估计是
$$P_{\lambda}(X^{(j)}=a_{jl}|Y=c_{k})=\frac{\sum \limits_{i=1}^{N}I(x_{i}^{(j)}=a_{jl},y_{i}=c_{k})+\lambda}{\sum \limits_{i=1}^{N}I(y_{i}=c_{k})+S_{j}\lambda} \qquad (4.10)$$

式中$$\lambda \ge 0$$.等价于在随机变量各个取值的频数上赋予一个正数 $lambda > 0$.当$lambda = 0$时就是极大似然估计。常取值$lambda=1$,这时称为拉普拉斯平滑(Laplace smoothing)。显然,对任何$l=1,2,cdots,S_{j},quad, k=1,2,cdots,K$有
$$P_{\lambda}(X^{(j)}=a_{jl}|Y=c_{k})>0$$

$$\sum \limits_{l=1}^{S_{j}} P(X^{(j)}=a_{jl}|Y=c_{k})=1$$
表明式(4.10)却为一种概率分布。同样,先验概率的贝叶斯估计是
$$P_{\lambda}(Y=c_{k})=\frac{\sum \limits_{i=1}^{N} I(y_{i}=c_{k})+ \lambda}{N+K \lambda} \quad (4.11)$$


DerekGrant
196 声望20 粉丝