学习笔记-《统计学习方法》-第四章-朴素贝叶斯

4 朴素贝叶斯

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

设输入空间XRnn维向量的集合,输出空间为类标记集合Y={c1,c2,...,ck}。输入为特征向量xX,输出为类标记(class label)yYX是定义在输入空间X上的随机变量,Y是定义在输出空间Y上的随机变量,P(X,Y)XY的联合概率分布,训练数据集

T={(x1,y1),(x2,y2),...,(xn,yn)}

P(X,Y)独立同分布产生。

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

先验概率分布

P(Y=ck),k=1,2,...,K

条件概率分布

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

从而获得联合概率分布。

条件概率分布P(X=x|Y=ck)有指数级的参数,其估计实际上是不可能的。假设x(j)可取值有Sj个,j=1,2,..,nY可取值有K个,那么参数个数为Kj=1nSj

朴素贝叶斯法为了解决该问题,作了条件独立性假设,由于这是一个较强的假设,朴素贝叶斯法因此得名。

P(X=x|Y=ck)=P(X(1)=x(1),X(2)=x(2),...,X(n)=x(n)|Y=ck)=j=1nP(X(j)=x(j)|Y=ck)

基于此,后验概率为

P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)kP(X=x|Y=ck)P(Y=ck)

将上式代入,可得

P(Y=ck|X=x)=P(Y=ck)j=1nP(X(j)=x(j)|Y=ck)kP(Y=ck)j=1nP(X(j)=x(j)|Y=ck)

于是得到

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是一致的,所以

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

4.1.2 后验概率最大化的定义

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

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

期望风险函数为:

Rexp(f)=E[L(Y,f(X))]=EXk=1KL(Y,f(X))P(ck|X)

为使期望风险最小化,只需对X=x逐个极小化,由此

f(x)=argminyYk=1KL(Y,f(X))P(ck|X=x)=argminyYk=1KP(yck|X=x)=argminyYk=1K1P(y=ck|X=x)=argmaxyYk=1KP(y=ck|X=x)

由此,根据期望风险最小化准则得到了后验概率最大化准则,也就是贝叶斯法所采用的准则。

4.2 朴素贝叶斯法的参数估计

4.2.1 极大似然估计

先验概率的极大似然估计

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

证明:

首先明确参数是什么,参数是p(y=ck)以及p(x(j)=ajl|y=ck),以ψ代表这两个参数

L(ψ)=logi=1Np(xi,yi;ψ)=logi=1Np(xi|yi;ψ)p(yi;ψ)=logi=1N(j=1np(xi(j)|yi;ψ))p(yi;ψ)=i=1N[logp(yi;ψ)+j=1nlogp(xi(j)|yi;ψ)]=i=1N[k=1Klogp(y=ck)I(yi=ck)+k=1Kj=1nl=1Sjlogp(xi(j)=ajl|yi=ck)I(xi(j)=ajl,yi=ck)]=i=1N[k=1KI(yi=ck)logp(y=ck)+k=1Kj=1nl=1SjI(xi(j)=ajl,yi=ck)logp(xi(j)=ajl|yi=ck)]

但实际上,p(y=ck)也存在相应的约束,有约束的求极值,可以考虑使用拉格朗日乘子法。

上式子中只有前半段含有$p(y = c_k),所以求先验概率估计时只考虑前半部分

先验概率估计

F=i=1N[k=1KI(yi=ck)logp(y=ck)+λ(1k=1Kp(y=ck))]

这里需要注意,并没有直接把1k=1Kp(y=ck))代入,而是带入了i=1N(1k=1Kp(y=ck))),区别不大,因为都是0,代入一个和多个是一样的,但是代入多个的情况下,下面更容易求解。

{Fp(y=c1)=i=1NI(y=c1)p(y=c1)λ=0Fp(y=c2)=i=1NI(y=c2)p(y=c2)λ=0...Fp(y=cK)=i=1NI(y=cK)p(y=cK)λ=0Fλ=i=1N{1k=1Kp(y=ck)}=0

联立前N个式子,可得

(2){p(y=c1)=i=1NI(y=c1)Nλp(y=c2)=i=1NI(y=c2)Nλ...p(y=cK)=i=1NI(y=cK)Nλ

因为k=1Kp(y=ck)=1,所以

1=i=1Ni=1KI(y=ck)Nλ1=NNλλ=1

代入(2)式,得到

p(y=ck)=i=1NI(y=ck)Nk=1,2,3,...,K

条件概率的极大似然估计

G=i=1N{k=1Kj=1n((l=1SjI(xi(j)=ajl,yi=ck)logp(xi(j)=ajl|yi=ck))+λkj(1l=1Sjp(xj=ajl|y=ck))}

与上面类似,由于对于每个k,j都会存在一个l=1Sjp(xj=ajl|y=ck)=1,所以实际上存在kl个约束,求导可得

(3){Gp(xi(j)=ajl|yi=ck))=i=1N{I(xi(j)=ajl,yi=ck)p(xi(j)=ajl|yi=ck)λkj}=0Gλkj=i=1N(1l=1Sjp(xj=ajl|y=ck))=0

由第一个式子可得

(4)p(xi(j)=ajl|yi=ck)=i=1NI(xi(j)=ajl,yi=ck)Nλkj

由第二个式子可得

(5)l=1Sjp(xj=ajl|y=ck))=1

联立两个式子可得

1=l=1Sji=1NI(xi(j)=ajl,yi=ck)Nλkj1=i=1NI(yi=ck)NλkjNλkj=i=1NI(yi=ck)

代入上式(4),得到

p(xi(j)=ajl|y=ck)=i=1NI(xi(j)=ajl,yi=ck)i=1NI(yi=ck)

证明完毕。

4.2.2 学习与分类算法

输入:训练数据T={(x1,y2),(x2,y2),...,(xN,yN)},其中xi=(xi(1),xi(2),...,xi(j))T, 其中xi(j)是第i个样本的第j个特征,xi(j){aj1,aj2,...ajSj}ajl是第j个特征可能的第l个取值,j=1,2,...,n,l=1,2,...,Sj,yi{c1,c2,...,cK}

输出:输出实例x的分类。

(1)计算先验概率及条件概率

p(y=ck)=i=1NI(y=ck)N,    k=1,2,3,...,Kp(xi(j)=ajl|y=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,计算

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

(3)确定实例x的类

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

4.2.3 贝叶斯估计

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

Pλ(X(j)=ajl|Y=ck)=i=1NI(xi(j)=ajl,yi=ck)+λi=1NI(yi=ck)+Sjλ

式中λ>=0,等价于在随机变量各个取值的频数上赋予一个正数λ>0,当λ=0的时候,就是极大似然估计。常取λ=1,这时称为拉普拉斯平滑(Laplacian smoothing)。由于对于任意的l=1,2,...,Sj;  k=1,2,...,K,都有

Pλ(X(j)=ajl|Y=ck)>0l=1SjPλ(X(j)=ajl|Y=ck)=0

所以贝叶斯估计也是一种概率分布,同样的,先验概率的贝叶斯估计是

Pλ(Y=ck)=i=1NI(y=ck)+λN+Kλ,    k=1,2,3,...,K

总结

  1. 朴素贝叶斯法是典型的生成学习方法。生成学习方法由训练数据学习联合概率分布P(X,Y),然后求得后验概率分布P(X|Y)

  2. 朴素贝叶斯的基本假设是条件独立性,基于此,省略率大量的参数,学习与预测大为简化,因而优点是高效,且易于实现。缺点就是分类性能不一定很高。

习题

回顾下贝叶斯估计

思路:假设概率Pλ(Y=ci)服从狄利克雷(Dirichlet)分布,根据贝叶斯公式,推导后验概率也服从Dirichlet分布,求参数期望;

证明步骤:

  1. 条件假设

根据朴素贝叶斯法的基本方法,训练数据集T={(x1,y1),(x2,y2),,(xN,yN)},假设:
(1)随机变量Y出现y=ck的次数为mk​,即mk=i=1NI(yi=ck),可知k=1Kmk=N(y总共有N个);
(2)Pλ(Y=ck)=uk,随机变量uk服从参数为λ的Dirichlet分布。

补充说明:

  1. 狄利克雷(Dirichlet)分布
      参考PRML(Pattern Recognition and Machine Learning)一书的第2.2.1章节:⽤似然函数(2.34)乘以先验(2.38),我们得到了参数uk的后验分布,形式为

    p(u|D,α)p(D|u)p(u|α)k=1Kukαk+mk1

    该书中第B.4章节: 狄利克雷分布是K个随机变量0uk1的多变量分布,其中k=1,2,,K,并满足以下约束

    0uk1,k=1Kuk=1

    u=(u1,,uK)T,α=(α1,,αK)T,有

    Dir(u|α)=C(α)k1Kukαk1E(uk)=αkk=1Kαk

  2. 为什么假设Y=ck的概率服从Dirichlet分布?
    答:原因如下:
    (1)首先,根据PRML第B.4章节,Dirichlet分布是Beta分布的推广。
    (2)由于,Beta分布是二项式分布的共轭分布,Dirichlet分布是多项式分布的共轭分布。Dirichlet分布可以看作是“分布的分布”;
    (3)又因为,Beta分布与Dirichlet分布都是先验共轭的,意味着先验概率和后验概率属于同一个分布。当假设为Beta分布或者Dirichlet分布时,通过获得大量的观测数据,进行数据分布的调整,使得计算出来的概率越来越接近真实值。
    (4)因此,对于一个概率未知的事件,Beta分布或Dirichlet分布能作为表示该事件发生的概率的概率分布。

大佬牛逼...感谢网上的解答

  1. 得到先验概率:

    P(u)=P(u1,u2,,uK)=C(λ)k=1Kukλ1

  2. 得到似然函数
      记m=(m1,m2,,mK)T,可得似然函数为

    P(m|u)=u1m1u2m2uKmK=k=1Kukmk

  3. 得到后验概率分布
      结合贝叶斯公式,求u的后验概率分布,可得

    P(u|m)=P(m|u)P(u)P(m)

  4. 根据假设(1),可得

    P(u|m,λ)P(m|u)P(u|λ)k=1Kukλ+mk1

    上式表明,后验概率分布P(u|m,\lambda)P(um,λ)也服从Dirichlet分布

  5. 得到随机变量uu的期望
      根据后验概率分布P(u|m,λ)和假设(1),求随机变量u的期望,可得

    E(uk)=αkk=1Kαk

    其中αk=λ+mk,则

    E(uk)=αkk=1Kαk=λ+mkk=1K(λ+mk)=λ+mkk=1Kλ+k=1Kmk=λ+mkKλ+N=i=1NI(yi=ck)+λN+Kλ

公式(4.11)得证

公式(4.10)的证明类似

posted @   zoro-zhao  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示