码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习——朴素贝叶斯(NBC)

时间:2015-04-27 02:06:20      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:机器学习   nbc   

朴素贝叶斯分类(NBC)是机器学习中最基本的分类方法,是其他众多分类算法分类性能的对比基础,其他的算法在评价性能时都在NBC的基础上进行。同时,对于所有机器学习方法,到处都蕴含着Bayes统计的思想。
朴素贝叶斯基于贝叶斯地理和特征条件独立性假设,首先基于条件独立性假设学习输入X和输出Y的联合分布P(X,Y),同时利用先验概率P(Y),根据贝叶斯定理计算出后验概率P(Y|X),找出每个类别的最大的后验概率即确定为相应的类别。算法实现简单,学习和预测的效率都很高,

基本定义

输入空间Rn为特征化的n维向量样本集合,输出空间为类别集合Y={c1,c2,...cK}K为类别数目。任意一个样本X可以表示如下:

Xi={x(1)i,x(2)i,x(3)i,...,x(n)i}

每一个x(d)i代表第i个样本的第d个特征分量的值,d=1,2,3...n;n为特征数目。
整个样本集可以表示如下:
T={(X1,y1),(X2,y2),...,(XN,yN)}

其中N为样本集中样本的数目。

模型

根据统计学中的大数定律,当样本量足够大时,样本的各个统计量,如xˉ=1nni=0xiDˉ=1nni=0(xi?xˉ)2分别可以近似该样本的理论分布的期望和方差。大数定律基于每个样本都是从独立同分布的理论分布产生。
朴素贝叶斯方法假设了上述训练集T是从输入空间和输出空间的联合概率分布P(X,Y)产生,通过训练集T学习联合概率分布。通过条件概率分布

P(X|Y=ck)
和先验分布
P(Y=ck)

就可以得到联合分布P(X,Y)
其中的条件概率分布理论上有指数级个数的参数,假设x(j)
Sj个取值可能性,那么对于K个类别的参数总个数为Knj=1Sj个。
为了简化计算和方便实现,朴素贝叶斯假定每个特征相互独立,这就是朴素贝叶斯的来历。根据独立性的定义可以得到
P(X|Y=ck)=P(X(1),X(2),...,X(n)|Y=ck)

=P(X(1)|Y=ck)?P(X(2)|Y=ck)...P(X(n)|Y=ck)

虽然简化了计算,但是在某些问题中这样的假设并不成立,因此会牺牲一定的准确度。贝叶斯实际上学习到的是根据训练集生成的分布,属于生成式模型
通过贝叶斯定理和全概率公式,根据上述学习到的参数计算每个类别下的后验概率:
P(Y=ck|Xi)=P(Y=ck)?jP(X(j)i|Y=ck)kP(Y=ck)?jP(X(j)i|Y=ck)

这就是朴素贝叶斯分类器的数学模型。对于最终的分类函数可以标识如下:
y=f(X)=argmaxckP(Y=ck)?jP(X(j)i|Y=ck)kP(Y=ck)?jP(X(j)i|Y=ck)

由于上式中对于所有的ck,分母都是一样的值,故只有分子对最后的分类产生作用。因此
y=f(X)=argmaxckP(Y=ck)?jP(X(j)i|Y=ck)

模型的另一种解释

上述关于朴素贝叶斯分类器的模型是从概率统计和独立性假设推出,可以从机器学习的角度重新推导。机器学习的三要素就是模型+策略+算法,这里的模型是指对于问题的分析后确定的需要学习到的模型类别,此处可以确定为生成式模型,学习到一个条件概率分布;策略选择0-1损失函数进行度量:

L(Y,f(X))={0,1, if Y=f(X) if Yf(X)

从而学习到最优的模型,选择期望风险最小化损失函数:
Remp(f)=E[L(Y,f(X))]=EXk=1KP(ck|X)?L(ck,f(X))

为了使得上述风险最小,只需要对Xi逐个极小化,从而得到:
f(x)=argminckYk=1KL(ck,Y)P(ck|X=x)=argminckYk=1KP(Yck|X=x)=argminckY(1?P(Y=ck|X=x))=argmaxckYP(Y=ck|X=x)

因此,使用基于贝叶斯定理得到的最大后验概率分类器与使用0-1损失函数的期望风险最小化策略是等价的。

参数估计

先验概率的估计:

P(Y=ck)=Ni=1I(yi=ck)N,k=1,2...K

条件概率估计:
设第j个特征x(j)的取值集合为{aj1,aj2,...ajSj},则有:
P(X(j)=ajl|Y=ck)=Ni=1I(x(j)=ajl,yi=ck)Ni=1I(yi=ck)

平滑方法:
当进行分类时,如果某个特征出现的值在训练中没有出现,那么就会出现零概率,这样计算得到的所有最终结果就为0,为了避免这种偏差,使用平滑方法进行修正,最常用的就是加一平滑,即对没有出现的特征项的计数值采用1代替,对于分母上的总样本数进行相应的增加。

机器学习——朴素贝叶斯(NBC)

标签:机器学习   nbc   

原文地址:http://blog.csdn.net/u010487568/article/details/45300249

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!