机器学习入门之机器学习:贝叶斯分类器(一)——朴素贝叶斯分类器
小标 2018-11-28 来源 : 阅读 995 评论 0

摘要:本文主要向大家介绍了机器学习入门之机器学习:贝叶斯分类器(一)——朴素贝叶斯分类器,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习入门之机器学习:贝叶斯分类器(一)——朴素贝叶斯分类器,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

一 理论基础

贝叶斯公式。

p(B|A)=p(A|B)p(B)p(A)=p(A|B)p(B)∑Kk=1p(A|Bk)p(Bk)p(B|A)=p(A|B)p(B)p(A)=p(A|B)p(B)∑k=1Kp(A|Bk)p(Bk)


对于分类任务来说,贝叶斯决策论在所有相关概率已知的理想情况下,考虑如何基于这些概率和误判损失来选择最优的类别标记。下面推导其基本原理,XX为输入空间上的随机向量,YY为输出空间上的随机变量,选择0-1损失函数,:

L(Y,f(X))={1,0,Y≠f(X)Y=f(X)L(Y,f(X))={1,Y≠f(X)0,Y=f(X)


式中f(X)为分类决策函数。这时,期望风险函数为

Rexp(f)=E[L(Y,f(X))]Rexp(f)=E[L(Y,f(X))]

期望是对联合分布取得。由此取条件期望

Rexp(f)=EX∑k=1K[L(ck,f(X))]p(ck|X)Rexp(f)=EX∑k=1K[L(ck,f(X))]p(ck|X)

为使期望风险最小化,只需要对

X=xX=x

逐个极小化,由此得到:

f(X)=argmin∑k=1KL(ck,y)p(ck|X=x)            =argmin∑k=1Kp(y≠ck|X=x)            =argmin(1−p(y=ck|X=x))            =argmaxP(y=ck|X=x)f(X)=argmin∑k=1KL(ck,y)p(ck|X=x)            =argmin∑k=1Kp(y≠ck|X=x)            =argmin(1−p(y=ck|X=x))            =argmaxP(y=ck|X=x)

根据期望最小化准则就得到了后验概率最大化准则:

f(x)=argmaxP(ck|X=x)f(x)=argmaxP(ck|X=x)


二 朴素贝叶斯分类器

根据上面的贝叶斯决策论基本原理,我们知道对于一个新的样本,要估计它的类别,只需要计算出属于各个类别的后验概率P(c1|x),P(c2|x),...,P(cK|x)P(c1|x),P(c2|x),...,P(cK|x),其中概率最大的类别即为新样本类别。因此我们需求出P(ck|x)P(ck|x)

由贝叶斯公式可得

P(ck|x)=P(x|ck)P(ck)P(x)P(ck|x)=P(x|ck)P(ck)P(x)

其中

P(ck)P(ck)

为类别的先验概率,

P(x|ck)P(x|ck)

是样本相对于类别的类别条件概率,

P(x)P(x)

为用于归一化的证据因子。对于给定样本,

P(x)P(x)

与类别无关。


因此问题转化为了如何基于训练集数据来估计先验概率P(ck)P(ck)与似然P(x|ck)P(x|ck)。
1).类别先验概率表达了样本空间中各类样本所占的比例,根据大数定理,当训练集包含足够的独立同分布时,先验概率可以根据各类样本出现的频率进行估计.
2).而对于类别条件概率P(x|ck)P(x|ck),由于它涉及关于XX所有属性的联合概率,直接基于有限的训练样本频率估计会遇到严重的困难。在计算上会遭遇组合爆炸问题,在数据上将会遭遇样本稀疏问题,属性越多,问题越严重。
例如假设样本有n个属性,第j个属性的取值有SjSj个,类别取值有K个,那么参数个数为K∏nj=1SjK∏j=1nSj。因此直接用频率来估计显然不可行。

基于此,朴素贝叶斯分类器采用了“属性条件独立性假设”即用于分类的属性在类确定的条件下都是相互独立的。P(x|ck)=P(x(1),x(2),...,x(n)|ck)=∏nj=1P(x(j)|ck)P(x|ck)=P(x(1),x(2),...,x(n)|ck)=∏j=1nP(x(j)|ck)

因此后验概率如下:

P(ck|x)=P(x|ck)P(ck)P(x)=P(ck)∏nj=1P(x(j)|ck)∑Kk=1P(x|ck)P(ck)=P(ck)∏nj=1P(x(j)|ck)∑Kk=1P(ck)∏nj=1P(x(j)|ck)P(ck|x)=P(x|ck)P(ck)P(x)=P(ck)∏j=1nP(x(j)|ck)∑k=1KP(x|ck)P(ck)=P(ck)∏j=1nP(x(j)|ck)∑k=1KP(ck)∏j=1nP(x(j)|ck)


于是基于后验概率的朴素贝叶斯分类器可表示如下:

y=f(x)=argmaxckP(ck)∏nj=1P(x(j)|ck)∑Kk=1P(ck)∏nj=1P(x(j)|ck)y=f(x)=argmaxckP(ck)∏j=1nP(x(j)|ck)∑k=1KP(ck)∏j=1nP(x(j)|ck)

注意到对于一个确定的样本,上式中分母对所有类别都是相同的,所以

y=f(x)=argmaxck  P(ck)∏j=1nP(x(j)|ck)y=f(x)=argmaxck  P(ck)∏j=1nP(x(j)|ck)


三 参数估计与拉普拉斯平滑

首先根据训练集计算出类别先验概率与条件概率(KK个类别,nn个特征,每个特征取值个数为Sj,j=1,2,...,nSj,j=1,2,...,n,因此参数个数为K∑nj=1SjK∑j=1nSj)

类别先验概率(其中m为训练集样本个数):采用贝叶斯估计

P(ck)=∑mi=1I(yi=ck)+λm+Kλ,k=1,2,..,KP(ck)=∑i=1mI(yi=ck)+λm+Kλ,k=1,2,..,K


条件概率:采用贝叶斯估计

P(X(j)=ajl|Y=ck)=∑mi=1I(x(j)i=ajl,yi=ck)+λ∑mi=1I(yi=ck)+Sjλj=1,2,..,n;l=1,2,...,Sj;k=1,2,...,KP(X(j)=ajl|Y=ck)=∑i=1mI(xi(j)=ajl,yi=ck)+λ∑i=1mI(yi=ck)+Sjλj=1,2,..,n;l=1,2,...,Sj;k=1,2,...,K


根据新的实例计算每个类别下各个特征的条件概率乘积再乘以类别先验概率,注意此时由于多个比较小的数相乘,会造成下溢出。因此可以先对每个概率取对数然后相加。比较最后结果,取最大的概率对应类别为新实例的类别

贝叶斯估计中λλ=0时,就是极大似然估计。常取1,此时称为拉普拉斯平滑,取小于1大于0时,为利德斯通平滑。

需要注意的是,以上都是假设特征为离散取值的情况,当特征取值为连续值时,假设特征各个类别上满足正态分布!!!当数据不同特征有的是离散值,有的是连续值时,根据需要离散化或者连续化,然后总体选用某个类型朴素贝叶斯分类器。

四 注意

  sklearn中朴素贝叶斯分类器主要分为高斯朴素贝叶斯,伯努利朴素贝叶斯及多项式朴素贝叶斯。具体参考[//sklearn.apachecn.org/cn/0.19.0/modules/naive_bayes.html#multinomial-naive-bayes]。

高斯模型。适用于特征为连续值得情况。

伯努利模型。适用于离散特征的情况,需要注意的是伯努利模型中要求样本特征必须为二值化,所以可以先把数据二值化,或者利用设置伯努利模型的binarize参数进行二值化。

多项式朴素贝叶斯。适用于离散特征的情况,注意这里特征的取值,为特征出现的次数!!处理文本分类时很容易理解。但是进行其他数据分类时,需要先对数据特征维度进行处理。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程