朴素贝叶斯算法简单高效,在处理分类问题上,应该是首先要考虑的方法之一
1. 准备知识
贝叶斯分类是一类算法的总称,这类算法均以贝叶斯定理为基础,故称贝叶斯分类
这个定理解决了生活里经常遇到的问题:已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(X|Y)的情况下如何求得P(Y|X)。这里先解释什么是条件概率。
P(X∣Y)=P(XY)P(Y)P(X|Y)=\frac{P(XY)}{P(Y)}P(X∣Y)=P(Y)P(XY)
P(Y|X)表示事件X已经发生的条件下,事件Y发生的概率,其基本的求解公式维:
P(Y∣X)=P(X∣Y)P(Y)P(X)P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)}P(Y∣X)=P(X)P(X∣Y)P(Y)
它其实是由以下的联合概率推导出来:
P(Y,X)=P(Y∣X)P(X)=P(X∣Y)P(Y)P(Y,X)=P(Y|X)P(X)=P(X|Y)P(Y)P(Y,X)=P(Y∣X)P(X)=P(X∣Y)P(Y)
其中P(Y)叫做类标签的先验(prior)概率(可以根据数据计算出来的概率),P(Y|X)叫做后验概率(根据先验概率计算出来的概率),P(Y,X)叫做联合概率。P(X|Y)是样本X相对于类标签Y的类条件概率。P(X)是用于归一化的证据因子,它于类的标签无关。
因此估计P(Y|X)问题就转化为如何基于训练数据D来估计先验概率P(Y)和条件概率P(X|Y)。
2. 极大似然估计
估计类标签的条件概率的一种常用策略是先假定其具有某种确定的概率分布,再基于训练样本对概率分布的参数进行估计。令DcD_{c}Dc表示训练集D中第c类样本组成的集合,假设这些样本是独立同分布的,则参数θc\theta_{c}θc对于数据集DcD_{c}Dc的似然是P(Dc∣θc)=∏x=DcP(x∣θc)P(D_{c}|\theta_{c})=\prod_{x=D_{c}} P(x|\theta_{c}) P(Dc∣θc)=x=Dc∏P(x∣θc)
极大似然估计试图在θc\theta_{c}θc的所有可能取值中,找到一个能使得数据出现的可能性最大的值。
3.朴素贝叶斯分类
使用贝叶斯准则来最小化决策风险,首先就要获得后验概率P(Y|X)。然而在现实任务中通常很难直接获得。机器学习所要实现的就是基于有限的训练样本集尽可能准确的估计出后验概率P(Y|X)。
主要有两种方案:第一,给定X,可以直接通过建模P(Y|X)来预测Y,这样得到的是“判别式模型”。第二,先对联合概率P(X,Y)建模,然后获得后验概率,这样得到的是“生成式模型”。决策树、BP神经网络、支持向量机都是判别式模型。
之所以叫朴素贝叶斯分类,是因为贝叶斯公式来估计后验概率P(Y|X)的主要困难在于类标签的条件概率P(X|Y)是所有属性上的联合概率。难以从有限的训练样本中直接估计而得出。为了解决这个问题,朴素贝叶斯采用了“属性条件独立性假设”,即对已知类别,假设所有属性相互独立,换言之,假设每个属性独立的对分类结果产生影响。
基于独立性假设,贝叶斯定理可以写成:
P(Y∣X)=P(X∣Y)P(Y)P(X)=P(Y)P(X)∏i=1dP(xi∣y)P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)}=\frac{P(Y)}{P(X)}\prod_{i=1}^{d}P(x_{i}|y)P(Y∣X)=P(X)P(X∣Y)P(Y)=P(X)P(Y)i=1∏dP(xi∣y)
其中d为属性数目,xix_{i}xi为X在第i个属性上的取值。
3.1朴素贝叶斯的分类步骤
- 设xi=a1,a2,...,amx_{i}={a_{1},a_{2},...,a_{m}}xi=a1,a2,...,am是一个待分类项,而每个aaa是XXX的一个特征属性
- 有类别集合C=y1,y2,...,ynC={y_{1},y_{2},...,y_{n}}C=y1,y2,...,yn
- 计算P(y1∣xi),P(y2∣xi),...,P(yn∣xi)P(y_{1}|x_{i}),P(y_{2}|x_{i}),...,P(y_{n}|x_{i})P(y1∣xi),P(y2∣xi),...,P(yn∣xi)条件概率
- 如果P(yk∣xi)=max{ P(y1∣xi),P(y2∣xi),...,P(yn∣xi)}P(y_{k}|x_{i})=max\{P(y_{1}|x_{i}),P(y_{2}|x_{i}),...,P(y_{n}|x_{i})\}P(yk∣xi)=max{ P(y1∣xi),P(y2∣xi),...,P(yn∣x

最低0.47元/天 解锁文章
5821

被折叠的 条评论
为什么被折叠?



