机器学习笔记之朴素贝叶斯

朴素贝叶斯

1 朴素贝叶斯为什么叫朴素贝叶斯?

  1. 因为这种方法是基于贝叶斯定理,顺便复习一下贝叶斯定理的表达式:

    P(Bi|A)=P(A|Bi)P(Bi)Nj=1P(A|Bj)P(Bj)

  2. 朴素贝叶斯法对条件概率分布作了条件独立性的假设,这是一个很强的假设,所以对应 “朴素” 二字。条件独立性假设 就是说用于分类的特征在类确定的条件下都是条件独立的。这个假设使得朴素贝叶斯变简单了,但也牺牲了一定的准确率, 条件独立性假设表达式:

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

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

2.1 学习方法

朴素贝叶斯法通过训练数据集学习联合概率分布 P(X,Y). 具体地:

  1. 学习先验概率分布:

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

  2. 学习条件概率分布:

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

于是学习到联合概率分布 P(X,Y)。道理简单嘛,就是根据条件概率公式:

P(AB)=P(A|B)P(B)=P(B|A)P(A)

2.2 分类方法

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

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

之前说过朴素贝叶斯“朴素”的原因就是对条件概率分布做了条件独立性的假设。所以我们把条件独立性假设的公式带入上式,得:

P(Y=ck|X)=P(Y=ck)nj=1P(X(j)=x(j)|Y=ck)KkP(Y=ck)nj=1P(X(j)=x(j)|Y=ck)

于是就得到了朴素贝叶斯分类的基本公式。于是,朴素贝叶斯分类器可以表示为:

y=f(x)=argmaxckP(Y=ck)nj=1P(X(j)=x(j)|Y=ck)KkP(Y=ck)nj=1P(X(j)=x(j)|Y=ck)

注意到分母其实是一个归一化因子,对于所有的类别都是相同的可以,继续化简为:
y=f(x)=argmaxckP(Y=ck)j=1nP(X(j)=x(j)|Y=ck)

2.3 后验概率最大化的含义

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

为什么会等价于期望风险最小化?来看看推导

  1. 假设选择 01 损失函数:
    L(Y,f(X))=1,0,Yf(X)Y=f(X)

    式中 f(X) 是分类决策函数,这时,期望风险函数为:
    Rexp=E[L(Y,f(X))]

    期望是联合分布 P(X,Y)取的,由此取条件期望:
    Rexp(f)=Exk=1K[L(ck,f(X))]P(ck|X)

    为了使期望风险最小化,只需要对 X=x 逐个极小化,得:
    f(x)=argminyk=1K[L(ck,f(X))]P(ck|X)=argminyk=1KP(yck)P(ck|X)=argminy(1P(y=ck|X))=argmaxyP(y=ck|X=x)

这样就从期望风险最小化的角度出发导出了分类决策函数 f(x)是要使得后验概率最大。这也是朴素贝叶斯法的原理所在

3 朴素贝叶斯的参数估计

3.1 极大似然估计

在朴素贝叶斯法中,学习意味着估计 P(Y=ck)P(X(j)=x(j)|Y=ck)

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

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

这个是怎么得到的? 下面我们来进行一个推导:

这其实就是一个二项分布求极大似然估计的问题

  1. P(Y=ck)=p,则 P(Yck)=1p,令随机变量 Z=1Y=ck时,Z=0Yck 时。 那么将两部分概率整合到一起写成:
    P(Z=zi)=pzi(1p)(1zi),zi{0,1}
  2. 假设 d=Ni=1I(yi=ck),也就是说 N 个样本中标签是 ck 的样本一共有 d 个,则整个训练集可以用一个 0,1向量来表示,其中 yi=ckZi=1 否则 Zi=0,则所有样本的联合概率分布为:
    P=pd(1p)Nd

    对上式取对数:
    L(p)=dlogp+(Nd)log(1p)

    求偏导令导数为0:
    Lp=dpNd1p=0

    解得 p=dN 取极值。

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

P(X(j)=ajl|Y=ck)=Ni=1I(X(j)i=ajl,yi=ck)Ni=1I(yi=ck)

推导方法和上面一样,这里不再赘述啦。

3.2 贝叶斯估计

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

1. 条件概率的贝叶斯估计是:

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

其中 λ0, 等价于在随机变量各个取值的频数上赋予一个正数,当 λ=0时 就是极大似然估计,常取 λ=1,这时称为 拉普拉斯平滑
2. 先验概率的贝叶斯估计是:

Pλ(Y=ck)=Ni=1I(yi=ck)+λN+Kλ

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014046022/article/details/79950195
文章标签: 机器学习
个人分类: 机器学习基础笔记
上一篇机器学习笔记之经验风险与结构风险
下一篇mac os 下安装 LightGBM
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭