本文主要介绍一个常见的分类框架--贝叶斯分类器。这篇文章分为三个部分:1. 贝叶斯决策论;2. 朴素贝叶斯分类器; 3. 半朴素贝叶斯分类器
贝叶斯决策论
在介绍贝叶斯决策论之前,先介绍两个概念:先验概率(prior probability)和后验概率(posterior probability)。
直观上来讲, 先验概率 是指在事件未发生时,估计该事件发生的概率。比如投掷一枚匀质硬币,“字”朝上的概率。后验概率是指基于某个发生的条件事件,估计某个事件的概率,它是一个条件概率。比如一个盒子里面有5个球,两个红球,三个白球,求在取出一个红球后,再取出白球的概率。
在wiki上, 先验概率的定义为:A prior probability is a marginal probability, interpreted as a description of what is known about a variable in the absence of some evidence。 后验概率的定义为:The posterior probability is the conditional probability of the variable taking the evidence into account. The probability is computed from the prior and the likelihood function via Baye's theorem.
现在以分类任务为例。 首先假设有N种可能的类别标签, 即y={c1, c2, ..., cN}, λij 表示将一个真实标记为cj的样本误分类为ci时产生的损失。后验概率p(ci|x)表示将样本x分类给ci是的概率。那么将样本x分类成ci产生的条件风险(conditional risk)为:
其中,P(cj|x) 表示样本x分类成cj类的概率,λij 表示将真实cj类误分类为ci类的损失。所以这个公式就是将x属于其他类(除ci类外)的概率与对应的误分类为ci的损失乘积之和。
我们的目标是寻找一个判定标准,以最小化总体的风险。这个判定准则也叫做贝叶斯判定准则(Bayes decision rule): 为最小化总体风险,只需要在每个样本上选择那个能使条件风险R(c|x)最小的类别标记,即
此时,h称为贝叶斯最优分类器(Bayes optional classifier),与之对应的总体风险R(h)称之为贝叶斯风险(Bayes risk). 1-R(h*)反映了分类器所能达到的最好性能,即理论上限。
如果把λij定义为:
那么风险函数可以改写为:
那么贝叶斯最优分类器的公式可以改写为:
先验概率p(c)和类条件概率p(x|c)(各类的总体分布)都是未知的。根据仅有的样本数据进行分类时,一种可行的办法是我们需要先对先验概率和类条件概率进行估计,然后再套用贝叶斯分类器。
先验概率的估计较简单,1、每个样本所属的自然状态都是已知的(有监督学习);2、依靠经验;3、用训练样本中各类出现的频率估计。
类条件概率的估计(非常难),原因包括:概率密度函数包含了一个随机变量的全部信息;样本数据可能不多;特征向量x的维度可能很大等等。总之要直接估计类条件概率的密度函数很难。解决的办法就是,把估计完全未知的概率密度转化为估计参数。这里就将概率密度估计问题转化为参数估计问题,极大似然估计就是一种参数估计方法。当然了,概率密度函数的选取很重要,模型正确,在样本区域无穷时,我们会得到较准确的估计值,如果模型都错了,那估计半天的参数,肯定也没啥意义了。上面说到,参数估计问题只是实际问题求解过程中的一种简化方法(由于直接估计类条件概率密度函数很困难)。所以能够使用极大似然估计方法的样本必须需要满足一些前提假设。
重要前提:训练样本的分布能代表样本的真实分布。每个样本集中的样本都是所谓独立同分布的随机变量 (iid条件),且有充分的训练样本。
极大似然估计
一般估计类条件概率使用的是极大似然估计。首先我们假设样本符合某个确定的概率分布形式,然后使用极大似然法估计这个分布的参数θ。公式如下:
其中,Dc表示样本空间中c类组成的样本集和。所以对参数θ的最大似然估计为:
朴素贝叶斯
前面我们已经讲到,要估计条件概率P(c|x),我们必须得求得类条件概率P(x|c)。但是这个类条件概率很难从有限的训练样本中直接获得,为了避开这个假设,我们使用朴素贝叶斯分类器(naive Bayes Classifier),朴素贝叶斯分类器采用了“属性条件独立性假设”(attribute conditional independence assumption): 即对已知类别,假设所有的属性相互独立,那么P(c|x)可以重写为:
对应的朴素贝叶斯判定准则为:
半朴素贝叶斯分类器
前面讲到, 为了降低估计后验概率P(c|x)的难度,朴素贝叶斯分类器采用了属性条件独立性假设,但是在现实任务中这个假设往往不成立。于是,人们放松了这个假设的限制,提出了半朴素贝叶斯分类器的假设(semi-naive Bayes classifiers)的学习方法。其中, 独依赖估计(one-Dependent Estimator ODE)是半朴素贝叶斯分类器的一种常用的策略。独依赖估计假设所有的属性都依赖于某一个属性。这里介绍三种基于独依赖估计的半朴素贝叶斯分类器。第一种是SPODE(Super-Parent ODE),即假设所有的属性都依赖于同一个属性,这个属性也被称之为超父。超父属性的确定通过交叉验证的方式确定。第二种是TAN(Tree Augmented navie Bayes)。这种方法的做法是先计算任意两个属性之间的条件互信息(conditional mutual information),这样就可以建立一个完全连接图。基于这个图,就可以生成一棵最大带权生成树。这棵树之间的连接关系便是属性之间的依赖关系。最后一种是AODE(Averaged One-Dependent Estimator),这种方法的做法是使用每个节点作为超父属性来构造SPODE,然后将具有足够训练数据支撑的SPODE集成起来作为最终的结果。
Reference:
【1】https://www.jianshu.com/p/427ce9749fad
【2】https://blog.csdn.net/zengxiantao1994/article/details/72787849
【3】https://blog.csdn.net/xo3ylAF9kGs/article/details/78643424?locationNum=5&fps=1