统计学习方法笔记——第4章-朴素贝叶斯法

朴素贝叶斯(naive Baye)法

朴素贝叶斯法是基于贝叶斯定理特征条件独立假设的分类方法,与贝叶斯估计(Bayesian estimation)是不同的概念

  1. 先基于特征条件独立假设,学习输入输出的联合概率分布P(X,Y)(是一种生成方法);
    1. 计算先验概率P(Y)和条件概率P(X|Y)
    2. 根据给定的实例,利用贝叶斯公式计算P(X,Y)=P(Y)P(X|Y)
  2. 然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y
    1. 根据P(X,Y),利用贝叶斯公式计算输入的P(Y|X)=P(X,Y)P(X)
    2. 取最大的y为输入的类别:y=argmaxP(Y|X)

接下来介绍朴素贝叶斯方法中如何求解P(X|Y),P(X) .

生成式模型generative models和判别式模型discriminative models

判别式模型

给定x ,直接建模P(c|x)来预测c,如决策树、BP神经网络、支持向量机等;

生成式模型

先对联合概率P(x,c)建模,然后再由此推导得出 P(cx),公式如下: P(cx)=P(x,c)P(x) 联合概率很难求,通过贝叶斯定理求解,转化后公式为: P(cx)=P(c)P(x|c)P(x)

朴素贝叶斯基本方法

朴素贝叶斯基于属性条件独立性假设从而简单建模P(x|c)

朴素贝叶斯法的基本假设是条件独立性。假设每个特征相互独立,则有后验概率为: P(cx)=P(c)P(x|c)P(x)=P(c)P(x)i=1dP(xi|c) 其中,d 为属性数目,xix在第i个属性上的取值。

由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测大为简化。因而朴素贝叶斯法高效,且易于实现。其缺点是分类的性能不一定很高。

朴素贝叶斯将后验概率最大的类作为x的输出: h(x)=argmaxcYP(c|x)=argmaxcYP(c)P(x)i=1dP(xi|c) 由于对所有类别来说P(x)都相同,略去,因此,最终求得c使得下式hnb最大。 hnb(x)=argmaxcYP(c)i=1dP(xi|c)

接下来的问题是如何求解P(xi|c),可以用极大似然估计和贝叶斯估计等方法。

后验概率最大化的含义

朴素贝叶斯法的后验概率最大化等价于0-1损失函数时的期望风险最小化。

证明

朴素贝叶斯法的参数估计

在朴素贝叶斯法中,学习意味着估计P(c)P(xi|c),可以用极大似然估计法、贝叶斯估计法估计相应的概率。

极大似然估计

极大似然估计的目的,就是为了找到似然最大时所对应的参数。

计算先验分布P(c)

类先验概率P(c)表达了样本空间中各类样本所占的比例。根据大数定律(用频率近似估计概率),当训练集包含充足的独立同分布样本时P(c)可通过各类样本出现的频率来进行估计: (1)P(c)=|Dc||D|=i=1NI(yi=c)N,(2)I,I(yi=c)={1,yi=c0,yic 其中,Dc表示训练集D中类别标记为c的样本集合, |Dc|表示集合|Dc|的样本总数。

计算条件概率分布P(xi|c)

如果属性i连续属性,先假设符合某种分布(比如,正态分布),利用某种方法估计分布的参数(比如极大似然估计-正态分布-需要求解均值、方差)。假设不同的分布,模型性能可能不同。

贝叶斯估计

因为P(c)P(x|c)是连乘的,如果|Dc|=0,即某个属性值在训练集中没有与某个类同时出现过,其他属性携带的信息被训练集中未出现的属性值"抹去'。因此,用极大似然估计可能会出现所要估计的概率值为0的情况。

解决这一问题的方法是采用贝叶斯估计。贝叶斯估计中用以下方法计算先验分布和条件概率分布。

计算先验分布P(c)

在估计概率值时通常要进行"平滑"(smoothing),下式中λ0。等价于在随机变量各个取值的频数上赋予一个正数λ>0。令N表示训练集D中可能的类别,则: P^(c)=|Dc|+λ|D|+Kλ

λ=1,称为"拉普拉斯修正"(Laplacian correction),(拉普拉斯平滑)常用;

λ=0,就是极大似然估计。

计算条件概率分布P(xi|c)

如果属性i离散属性,仍然使用大数定律求解P(xi|c);同样有拉普拉斯修正后的公式为: P^(xi|c)=|Dc,xi|+λ|Dc|+Niλ 其中Ni表示第i个属性可能的取值数。

习题

习题4.1

题目

用极大似然估计法推出朴素贝叶斯法中的概率估计公式(4.8)及公式 (4.9)。

公式(4.8): P(Y=ck)=i=1NI(yi=ck)N,k=1,2,3...K 公式 (4.9): (3)P(X(j)=ajl|Y=ck)=i=1NI(xi(j)=ajl,yi=ck)i=1NI(yi=ck),(4)j=1,2,....n,l=1,2,...Sj,k=1,2,3...K

极大似然估计步骤回顾

极大似然估计的一般流程:

  1. 写出随机变量的概率分布函数
  2. 写出似然函数;
  3. 对似然函数取对数,得到对数似然函数,并进行化简;
  4. 对参数进行求导,并令导数等于0;
  5. 求解似然函数方程,得到参数的值。
似然与概率

假设X是一个离散型的随机变量,它的概率分布p取决于参数θ,那么它的似然函数定义为: L(θx)=pθ(x)=Pθ(X=x)=P(X=xθ)=P(X=x;θ) 表示基于给定的X=x,认为参数Θ=θ的似然(可信度),它的值则等于基于给定的参数Θ=θ,预测出现X=x的概率(可信度)。

推导公式(4.8)
  1. 根据朴素贝叶斯法的前提假设,Y=y1,y2,,yN满足独立同分布。假设P(Y=ck)概率为p(也为求的参数),其中ck在随机变量Y中出现的次数m=i=1NI(yi=ck),则概率为P(Y|p)=pm(1p)Nm

  2. 似然函数为:L(p|Y)=P(Y|p)=pm(1p)Nm

  3. 对似然函数取对数,得到对数似然函数为: (5)logL(p|Y)=logpm(1p)Nm(6)=mlogp+(Nm)log(1p)

  4. 对参数p求导,并求解导数为0时的p值: (7)p^=argmaxplogL(p|Y)(8)=argmaxpmlogp+(Nm)log(1p)(9)logL(p|Y)p=[mpNm1p]=0

  5. 求得: (10)P(Y=ck)=p=mN

推导公式(4.9)
  1. 与上述证明类似,此时在条件Y=ck下,随机变量X满足条件独立性,假设P(X(j)=ajl|Y=ck)概率为p,其中ck在随机变量Y中出现的次数m=i=1NI(yi=ck)y=ckx(j)=ajl同时出现的次数q=i=1NI(xi(j)=ajl,yi=ck),则概率为P(X,Y|p)=pq(1p)mq

  2. 似然函数为:L(p|X,Y)=P(X,Y|p)=pq(1p)mq

  3. 对似然函数取对数,得到对数似然函数为: (11)logL(p|X,Y)=logpq(1p)mq(12)=qlogp+(mq)log(1p)

  4. 对参数p求导,并求解导数为0时的p值: (13)p^=argmaxplogL(p|X,Y)(14)=argmaxpqlogp+(mq)log(1p)(15)logL(p|X,Y)p=[qpmq1p]=0

  5. 求得: (16)P(X(j)=ajl|Y=ck)=p=qm

习题4.2

题目

用贝叶斯估计法推出朴素贝叶斯法中的概率估计公式(4.10)及公式(4.11)。

公式(4.10): (17)Pλ(X(j)=ajl|Y=ck)=i=1NI(xi(j)=ajl,yi=ck)+λi=1NI(yi=ck)+Sjλ,(18)j=1,2,....n,l=1,2,...Sj,k=1,2,3...K 公式(4.11): Pλ(Y=ck)=i=1NI(yi=ck)+λN+Kλ,k=1,2,3...K

贝叶斯估计一般流程回顾

贝叶斯估计(最大后验估计)的一般步骤

  1. 确定参数θ的先验概率p(θ)
  2. 根据样本集D={x1,x2,,xn},计算似然函数P(D|θ)P(D|θ)=i=1nP(xi|D)
  3. 利用贝叶斯公式,写出后验概率最大化公式:argmaxθP(θ|D)=argmaxθP(D|θ)P(θ)ΘP(D|θ)P(θ)dθ=argmaxθP(D|θ)P(θ)
  4. 利用求导,得到后验概率最大时的参数取值。
推导公式(4.10)
  1. 根据朴素贝叶斯法的基本方法,训练数据集T={(x1,y1),(x2,y2),,(xN,yN)},假设:

    1. 随机变量Y出现y=ck的次数为mk,即mk=i=1NI(yi=ck),可知k=1Kmk=Ny总共有N个);

    2. 假设随机变量Pλ(Y=ck)=uk服从参数为λ的Dirichlet分布:

    为什么假设Y=ck的概率服从Dirichlet分布?

    答:原因如下:

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

    根据假设(2)和Dirichlet分布的定义,可得先验概率为: P(u)=P(u1,u2,,uK)=C(λ)k=1Kukλ1

  2. 得到似然函数:由Pλ(Y=ck)=uk,记m=(m1,m2,,mK)T,可得似然函数为 P(m|u)=u1m1u2m2uKmK=k=1Kukmk

  3. 得到似然函数:结合贝叶斯公式,求u的后验概率分布,可得 (19)P(u|m)=P(m|u)P(u)P(m)(20)P(u|m,λ)P(m|u)P(u|λ)k=1Kukλ+mk1 上式表明,后验概率分布P(u|m,λ)也服从Dirichlet分布。

  4. 得到随机变量u的期望:根据后验概率分布P(u|m,λ)和假设(1),求随机变量u的期望,可得: E(uk)=αkk=1Kαk=λ+mkk=1K(λ+mk)=λ+mkk=1Kλ+k=1Kmk(k=1Kmk=N)=λ+mkKλ+N(mk=i=1NI(yi=ck))=i=1NI(yi=ck)+λN+Kλ 随机变量ukuk的期望,可得 Pλ(Y=ck)=i=1NI(yi=ck)+λN+Kλ

推导公式(4.11)

与上述推导同理,此时有:

  1. 假设:

    1. 出现x(j)=ajl,y=ck的次数为ml,即ml=i=1NI(x(j)=ajl,y=ck),可知k=1Sjml=i=1NI(yi=ck)(总共i=1NI(yi=ck)个);

    2. 假设随机变量Pλ(X(j)=ajl|Y=ck)=ul服从参数为λ的Dirichlet分布;

    根据假设(2)和Dirichlet分布的定义,可得先验概率为: P(u)=P(u1,u2,,uSj)=C(λ)l=1Sjulλ1

  2. 得到似然函数:由Pλ(X(j)=ajl|Y=ck)=ul,记m=(m1,m2,,mK)T,可得似然函数为: P(m|u)=u1m1u2m2uSjmSj=l=1Sjulml

  3. 得到后验概率分布:得到似然函数:结合贝叶斯公式,求u的后验概率分布,可得 (21)P(u|m)=P(m|u)P(u)P(m)(22)P(u|m,λ)P(m|u)P(u|λ)l=1Sjulλ+ml1 表明,后验概率分布P(u|m,λ)也服从Dirichlet分布。

  4. 得到随机变量u的期望:根据后验概率分布P(u|m,λ)和假设(1),求随机变量u的期望,可得: E(ul)=αll=1Sjαl=λ+mll=1Sj(λ+ml)=λ+mll=1Sjλ+l=1Sjml(l=1Sjml=i=1NI(yi=ck))=λ+mlSjλ+i=1NI(yi=ck)(ml=i=1NI(xi(j)=ajl,yi=ck))=i=1NI(xi(j)=ajl,yi=ck)+λi=1NI(yi=ck)+Sjλ

    随机变量ulul的期望,可得 Pλ(X(j)=ajl|Y=ck)=i=1NI(xi(j)=ajl,yi=ck)+λi=1NI(yi=ck)+Sjλ

参考资料

【For非数学专业】通俗理解似然函数、概率、极大似然估计和对数似然

李航 统计学习方法 第2版

DataWhale资料-第4章 朴素贝叶斯法 (datawhalechina.github.io)