基于贝叶斯决策理论的分类器

来源:互联网 发布:全景旅游教学软件 编辑:程序博客网 时间:2024/06/06 17:05

基于贝叶斯决策理论的分类器

  • 基于贝叶斯决策理论的分类器
    • 贝叶斯决策理论
      • 1 如何衡量分类好坏
    • 参数估计
      • 1 极大似然估计
      • 2 最大后验概率估计
      • 3 最大熵估计
      • 4 非参数估计
    • 贝叶斯分类器在现实中的应用
      • 1 垃圾邮件分类
      • 2 贝叶斯网络
    • 参考文献

首先,我们知道机器学习分为监督学习和非监督学习两大类。在监督学习中,我们主要面对的是拟合问题(regression)和分类问题(classification)。在本节中,我们先来了解一下如何使用贝叶斯规则进行分类。

1. 贝叶斯决策理论

通常,我们会采集到许多的样本向量x并生成样本集X,然后我们给它们加上对应的标签(label)y,标签表示该样本对应的分类结果,这样我们就获得了一个样本向量和分类结果一一对应的数据集。我们先来考虑一下二分类问题(标签的取值只有两种),下面给出贝叶斯公式:

P(wi|x)=P(x|wi)P(wi)P(x)

上式中,x是我们要进行分类的特征向量,wi是样本所属的类别。
我们的目标是:当得到一个新的样本x时,能从已有的数据集中推断出该样本属于某一类的可能性大小,即推断出P(wi|x)的大小。通过对数据集进行统计,我们可以得到给定某一类时,样本x出现的概率(P(x|wi)),以及数据集中某一类样本的数据出现的概率P(x)。通过对P(x|wi)进行边沿积分,我们可以得到某个样本x的出现概率,边沿积分公式下面给出:

P(x)=i=12P(x|wi)P(wi)

(这里考虑离散的情况,积分变为求和,同时只考虑二分类问题)
到这里,我们就可以通过对P(w1|x)P(w2|x)的大小进行比较,从而得出分类结果了,我们的分类规则为:如果P(w1|x)>P(w2|x),则x属于w1;如果P(w1|x)<P(w2|x),则x属于w2
知道了判决规则之后,将贝叶斯公式代入进行推导,获取一个等价的判决规则

P(x|w1)P(w1)P(x)=P(x|w2)P(w2)P(x)

P(x|w1)P(w1)=P(x|w2)P(w2)

1.1 如何衡量分类好坏?

直观上,我们认为尽可能的使分类正确才是衡量分类器好坏的标准,但在某些情况下,使用分类正确率来衡量分类器好坏是不合适的。比如根据癌症患者的一些信息,判断该患者是早期还是晚期患者,如果我们一味的准求准确率,而将部分晚期患者错判为早期患者,这将是致命的错误。因此这里我们引出了两种衡量分类器好坏

  • 最小分类误差
    在该标准下,我们要做的就是使分类误差降到最低,而贝叶斯分类器可以证明在最小化分类错误率上是最优的。我们从下图来直观的认识一下。




图中的阴影面积是分类错误的概率,我们要找到一个合适的判决门限x0使分类误差最小,也就是使阴影面积最小。经过推导,当x0位于图中的交叉点位置时,分类误差最小。而我们的贝叶斯分类器很自然的就实现了这一点。

  • 最小平均风险
    这里我们定义了一个风险函数和损失矩阵,我们要做的就是将x分给使风险函数值最小的那个类

lik=1MλkiP(x|wk)P(wk)

上式中λki是惩罚项,是将属于第k类的x分到第i类中所收到的惩罚。故我们可以定义一个惩罚矩阵

L=[0λ21λ120]

如果正确分类的话惩罚项为0,表示不受惩罚,根据需要去定义分类错误时收到的惩罚大小。
因此在分类时,我们要计算k=1和2时的损失大小,将x分给使损失最小的那一类,这就是最小平均风险。但是,要注意的是此时的损失li是没有概率意义的

2. 参数估计

我们在获取到大量的样本数据x之后,想知道x是服从什么样的分布的,了解概率分布将更好的帮助我们改进我们的分类器模型。所以,从样本中估计出概率分布的参数就变得尤为重要。
在介绍估计方法之前,我们要先了解一些概念:

  1. 要被估计的参数:θ
  2. 先验概率:p(θ)表示θ的先验概率
  3. 后验概率:p(θ|x)表示在给定x的条件下,θ的概率
  4. 似然函数:p(x;θ),似然函数是以θ为自变量的函数

下面会介绍四种参数估计方法。

2.1 极大似然估计

因为我们的样本是随机获得的,样本间是独立同分布的,所以我们可以写出似然函数

p(X;θ)p(x1,x2,,xN;θ)=k=1Np(xk;θ)

找到使似然函数取最大值的时的θ,就得到了我们的参数估计值θ^ML=θ,数学表达式如下
θ^ML=argmaxθk=1Np(xk;θ)

通过分析我们知道,极大似然估计是渐进无偏的估计,估计值均方收敛与真实值,如果想要估计的足够准确,要求样本数N要尽可能的多。
这时,我们再观察似然函数,可以发现其中都是连乘结构,因此我们可以在似然函数外边套上一个ln()函数,得到对数似然函数。这么做带来的好处就是将连乘转化为求和的形式,降低了求导的难度。而ln()函数本身是单调的,因此求解对数似然函数的极点和求解似然函数的极点是等效的。下面给出对数似然函数的表达式:

L(θ)lnk=1Np(xk;θ)=k=1Nln(p(xk;θ))

2.2 最大后验概率估计

通过该方法的名字我们就可以知道,我们是要使参数的后验概率达到最大。和极大似然估计最大的不同是,这里我们认为θ是一个随机向量,也是具有某种形式概率分布的。极大似然估计中仅仅将θ认为是一个变量,是没有统计特性的,这一点要尤其注意
根据贝叶斯公式,我们可以得到参数θ的表达式:

p(θ|X)=p(θ)p(X|θ)p(X)

式中,X=(x1,x2,,xn)是我们采集到的样本集,该样本集出现的概率是一个常数,因此p(X)是一个常数,不影响后验概率函数的极值点,估计值为θ^MAP
θ^MAP:θp(θ|X)=0

等价于求导:
θp(θ)p(X|θ)=0

到这里,我们发现了一个问题,我们并不知道θ的先验概率,因此我们要做的另一件事就是必须要先给出θ一个合理的先验分布,才能进行估计。

2.3 最大熵估计

首先引入熵的概念,熵表示一个系统的混乱程度,这是从物理学中借鉴过来的概念,下面给出表达式:

H=xp(x)ln(p(x))dx

s.t.p(x)dx=1

因为我们要估计的是某种概率密度函数,所以其积分值等于1,这是一个线性约束条件,这是我们的问题就转化为了求解这个线性约束的最优化问题,求解方法是拉格朗日乘子法,可以参考这方面的书籍。

2.4 非参数估计

这是一种非常直观的估计方法,引入下面这张图来进行说明



我们只需要合理选择x的间隔即可,间隔小,可以得到更加精确的估计,但是如果样本数量较少的话,概率密度函数会出现很多毛刺。间隔大,估计出的概率密度函数更加平滑,但是精度较低,解决方法只有增大样本数量。
估计一维概率密度函数时,我们需要观察样本在x的一小段线段上的分布情况,估计二维概率密度函数时,由于特征数量从1变成了2,于是我们要观察样本在x1,x2的线段组成的一个小方块上的分布情况,到了三维概率密度函数时,观测区间变成了一个立方体,再到高维情况下,观测区间是超立方体(超球体)。
到这就出现问题了,虽然该方法的计算十分简单,但是随着特征数量的增长,观测区间的个数也是指数增长的,同时区间间隔的大小也影响观测区间的个数。
因此,当特征数量很多时,这种方法的效率可能是很低的。

3. 贝叶斯分类器在现实中的应用

3.1 垃圾邮件分类

现在很多邮箱系统都由垃圾邮件自动屏蔽功能,但是系统是怎么知道一封邮件是不是垃圾邮件呢?
这里引出了朴素贝叶斯技术,朴素贝叶斯和贝叶斯最大的不同在于给定了一个很强的条件,就是条件概率之间是相互独立的,下面给出具体的公式:

P(x1,x2,,xN|wi)=k=1Np(xk|wi)

N是我们收到的邮件中单词的数量,xk是邮件中的第k个单词,wi是类别,分为垃圾邮件类和非垃圾邮件类。我们已经有了一个较大的数据集,既有垃圾邮件也有非垃圾邮件,而我们要做的就是计算wi为垃圾邮件和非垃圾邮件时,概率P(x1,x2,,xN|wi)的大小,而p(xk|wi)的计算就是统计每类中,单词wk出现的频率。
最后,将该邮件判决为概率大的那一类。

3.2 贝叶斯网络

首先,我们来关注一下概率的链式规则:

p(x1,x2,,xl)=p(xl|xl1,,x1)p(xl1|xl2,,x1),,p(x2|x1)p(x1)

从这个式子中,我们发现概率其实是一层一层的传递过去的,这优点类似与算法中图的结构,而由概率构成的一定是一个有向无环图(DAG)。
下边给出一个简单的例子,对癌症患者进行药物测试:



正如图中所示,概率是一级一级传递下来的,在这个类似于决策树的结构中,可以计算出端点上的概率值,这就是我们进行判断的依据。

参考文献

[1]: 模式识别第四版
[2]: 统计学习方法