朴素贝叶斯
2021-09-13

 

朴素贝叶斯的学习方法

概念定义

设输入空间XRnn维向量的集合,输出空间为类标记集合Y={c1,c2,,cK}。输入为特征向量xX,输出为类标记yYX是定义在输入空间X上的随机向量,Y是定义在输出空间Y上的随机变量。P(X,Y)XY的联合概率分布。训练数据集TP(X,Y)独立同分布产生: T={(x1,y1),(x2,y2),,(xM,yM)} xn×1M

学习方法

朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y)。具体地,学习以下先验概率分布及条件概率分布。

  1. 先验概率分布

    (1)P(Y=ck),k=1,2,,K
  2. 条件概率分布

(2)P(X=xY=ck)=P(X(1)=x(1),,X(n)=x(n)Y=ck),k=1,2,,K

于是,学习到联合概率分布P(X,Y)

(3)P(X=x,Y=ck)=P(Y=ck)P(X=xY=ck)

朴素的含义

问题:条件概率分布P(X=xY=ck)=P(X(1)=x(1),,X(n)=x(n)Y=ck)的参数是指数级的,其估计实际不可实行。

解决方法:对上述条件概率做条件独立性假设,即在给定Y=ck的条件下,随机变量x的各分量独立。具体如下所示:

(4)P(X=xY=ck)=P(X(1)=x(1),,X(n)=x(n)Y=ck)=j=1nP(X(j)=x(j)Y=ck)

朴素贝叶斯实际上学习到生成数据的机制,所以属于生成模型。

 

如何做分类

朴素贝叶斯算法分类时,对给定的输入x,通过学习到的模型计算后验概率分布P(X=xY=ck),将后验概率最大的类作为x的预测类别。根据贝叶斯定理:

(5)P(Y=ckX=x)=P(Y=ck,X=x)P(x)=P(X=xY=ck)P(Y=ck)kP(x,y)=P(X=xY=ck)P(Y=ck)kP(X=xY=ck)P(Y=ck)P(Y=ck)j=1nP(X(j)=x(j)Y=ck)kP(Y=ck)j=1nP(X(j)=x(j)Y=ck)k=1,2,,K

后验概率的朴素解释:现在判断一封电子邮件是否为垃圾邮件,不看内容随机猜,50%的胜率,但是,如果能看到邮件内容,就是知道了特征x,再去判断是否为垃圾邮件,就是所谓的后验概率。

贝叶斯分类器

朴素贝叶斯分类器可以表示为:

(6)y=f(x)=argmaxckP(Y=ck)j=1nP(X(j)=x(j)Y=ck)kP(Y=ck)j=1nP(X(j)=x(j)Y=ck)

由于分母对所有ck都是相同的,因此,上式可以简化为:

(7)y=f(x)=argmaxckP(Y=ckX=x)=argmaxckP(Y=ck)j=1nP(X(j)=x(j)Y=ck)

 

后验概率最大化的含义

朴素贝叶斯法将实例预测为后验概率最大的类别,这等价于期望风险最小化。

假设选择0-1损失函数:

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

那么期望风险代表的就是损失的平均值,期望是对联合分布P(X,Y)取的,期望风险函数为:

(9)Rexp(f)=E[L(Y,f(X))]=χ×yL(y,f(x))P(x,y)dxdy=χ×yL(y,f(x))P(yx)P(x)dxdy=χYL(y,f(x))P(yx)dyP(x)dx

H(x)=YL(y,f(x))P(yx)dyH(x)中损失函数大于等于0,条件概率P(yx)大于0,因此H(x)也大于0。同时P(x)也大于0,且当X=x时,P(x)(先验概率)为常数,因此期望风险最小化可转换为条件期望最小化,即

(10)argminyYRexp(f)=argminyYH(x)

为了使期望风险最小化,只需对数据集T中每个x逐个最小化即可,由此可得到:

(11)f(x)=argminyYRexp(f)=argminyYH(x)=argminyYk=1KL(ck,y)P(ckX=x)=argminyYk=1KP(yckX=x)=argminyY(1P(y=ckX=x))=argmaxyYP(y=ckX=x)yck

yY={c1,c2,,cK}ckc1,c2,ck1,ck+1,,cK1P(ck)

这样一来,根据期望风险最小化准则就得到了后验概率最大化准则,即朴素贝叶斯采用的原理:

(12)f(x)=argmaxckP(ckX=x)

朴素贝叶斯的参数估计

极大似然估计

在朴素贝叶斯方法中,学习意味着估计:

  1. P(Y=ck)

  2. P(X(j)=x(j)Y=ck)

    因此,可以使用极大似然法估计相应的概率。

P(Y=ck)估计

先验概率P(Y=ck)的极大似然估计是:

(13)P(Y=ck)=i=1NI(yi=ck)N,k=1,2,,K

P(X(j)=x(j)Y=ck)估计

设第j个特征x(j)可能取值的集合是{aj1,aj2,,ajSj},条件概率P(X(j)=ajlY=ck)的极大似然估计是:

(14)P(X(j)=ajlY=ck)=i=1NI(xi(j)=ajl,yi=ck)i=1NI(yi=ck)j=1,2,,n;l=1,2,,Sj;k=1,2,,K

其中,xi(j)是第i个样本的第j个特征,ajl是第j个特征可能取的第l个值,I为指示函数。

学习与分类算法

1.1()

:T={(x1,y1),(x2,y2),,(xN,yN)},xi=(xi(1),xi(2),,,xi(n))T,xi(j)ij,xi(j){aj1,aj2,,ajSj},ajljl,j=1,2,,n,l=1,2,,Sj,yi{c1,c2,,cK};x;

x

(1)

(15)P(Y=ck)=i=1NI(yi=ck)N,k=1,2,,KP(X(j)=ajlY=ck)=i=1NI(xi(j)=ajl,yi=ck)i=1NI(yi=ck)j=1,2,,n;l=1,2,,Sj;k=1,2,,K

(2)x=(x(1),x(2),,x(n))T,计算

(16)P(Y=ck)j=1nP(X(j)=x(j)Y=ck),k=1,2,,K

(3)x

(17)y=argmaxckP(Y=ck)j=1nP(X(j)=x(j)Y=ck)

贝叶斯估计

使用极大似然估计可能会出现所要估计的概率值为0的情况。这时会影响到后验概率的计算结果,使分类产生误差。解决这一问题的方法是使用贝叶斯估计。具体地,条件概率的贝叶斯估计是:

(18)Pλ(X(j)=ajlY=ck)=i=1NI(xi(j)=ajl,yi=ck)+λi=1NI(yi=ck)+Sjλλ0

等价于在随机变量各个取值的频数上加上一个正数λ>0。当λ=0时就是极大似然估计。

常取λ=1,这时称为拉普拉斯平滑。显然,对于任何l=1,2,,Sjk=1,2,,K,有:

(19)Pλ(X(j)=ajlY=ck)>0l=1SjP(X(j)=ajlY=ck)=1

说明(18)确实为一种概率分布。

同样,先验概率的贝叶斯估计是:

(20)Pλ(Y=ck)=i=1NI(yi=ck)+λN+Kλ