机器学习笔记——贝叶斯分类器

990 阅读3分钟

1. 贝叶斯分类器概念

贝叶斯分类器是各种分类器中分类错误概率最小或者在预先给定代价的情况下平均风险最小的分类器。它的设计方法是一种最基本的统计分类方法。其分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。

贝叶斯分类器优点:简单易懂、学习效率高;分类过程中时空开销小

贝叶斯分类器缺点:算法以自变量之间的独立(条件特征独立)性和连续标量的正态性假设为前提,会导致算法精度在某种程度上受影响

2. 相关概念

本部分主要介绍学习在贝叶斯分类器中会用到的一些相关概率以便于更好的理解。

2.1 先验概率

定义:根据以往经验和分析得到的概率(在我们对数据特征一无所知的时候通过以往经验得到的概率)。

举例:假设在我们选购西瓜时,我们对西瓜的色泽、纹理、根蒂等特征一无所知,按照常理来说,西瓜是好瓜的概率为60%。由此可以得出概率P(好瓜)就称作先验概率。

2.2 后验概率

定义:在事情已经发生的条件下,要求这件事情发生的原因是由某个因素引起的可能性大小(类似于条件概率)。

举例:假设我们已经知道了纹理这一特征可以判断西瓜好坏。75%的西瓜是纹理清晰的。如果我们利用西瓜纹理来推测西瓜好坏,那么P(好瓜|纹理清晰)则被称为后验概率。

2.3联合概率

定义:设二维离散型随机变量(XY)(X,Y)所有可能取值为(Xi,Yj),i,j=1,2,...(Xi,Yj),i,j=1,2,...,记P(X=xi,Y=yi)=pi,j,i,j=1,2,...,nP(X=xi,Y=yi)=pi,j ,i,j=1,2,...,n则称pijpij为随机变量X和Y的联合概率。

计算如下:P{X=i,Y=j}=P{Y=j|X=i}P{X=i} ,i=1,2,3,...,j<=i

举例:上述买西瓜的案例中,P(好瓜,纹理清晰)就是一个联合分布,他表示的含义为这个瓜是纹理清晰且为好瓜的概率。他的联合概率应满足以下公式。

P(好瓜,纹理清晰)=P(纹理清晰好瓜)P(好瓜)P(好瓜,纹理清晰)=P(纹理清晰|好瓜)·P(好瓜)

2.4 全概率公式

若事件A1,A2,…构成一个完备事件组且都有正概率,则对任意一个事件B,有如下公式成立:P(B)=P(BA1)+P(BA2)+...+P(BAn)=P(B|A1)P(A1) + P(B|A2)P(A2) + ... + P(B|An)P(An) ,此公式即为全概率公式。(当直接计算P(B)较为困难时,而P(Ai),P(B|Ai),i=1,2,...的计算较为简单时,可以利用全概率公式进行计算P(B))

a97850a6b8bbc210fdfb64f84c61c3e.jpg

举例:上面联合概率概念买西瓜的例子中,我们要计算P(好瓜,纹理清晰)联合概率时,需要知道P(纹理清晰)的概率。那么,如何计算纹理清晰的概率呢?实际上可以分为两种情况:一种是好瓜状态下纹理清晰的概率,另一类是坏瓜状态下纹理清晰的概率。纹理清晰的概率就是这两种情况之和。因此,我们可以推导出全概率公式:

P(纹理清晰)=P(纹理清晰好瓜)P(好瓜)+p(纹理清晰坏瓜)P(坏瓜)P(纹理清晰)=P(纹理清晰|好瓜)·P(好瓜)+p(纹理清晰|坏瓜)·P(坏瓜)

2.5 贝叶斯定理

贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。其中P(A|B)是在B发生的情况下A发生的可能性,其公式如下。

8694a4c27d1ed21b0ef45c6cde20cac451da80cb91ae.png

对于每个特征X,我们想要知道样本再这个特性X下属于哪个类别,即求后验概率P(c|x)最大的类标记。这样,基于贝叶斯公式,我们可以得出:

1631676297(1).png

UCglRTclQjE.png

下面我们将通过西瓜的例子对上述知识点进行整理:

西瓜的状态分为两种:好瓜与坏瓜,概率分别为0.6和0.4,并且好瓜里面纹理清晰的概率是0.8,坏瓜里面纹理清晰的概率是0.4。那么,我现在挑了一个纹理清晰的瓜,该瓜是好瓜的概率是多少?

很明显,这是一个后验概率问题,我们可以直接给出公式:

1631676894(1).jpg

对公式里面出现的概率一个一个分析:

后验概率:P(纹理清晰|好瓜)=0.8

先验概率:P(好瓜)=0.6

后验概率:P(纹理清晰|坏瓜)=0.4

先验概率:P(坏瓜)=0.4

由上面分析的数值,我们可以直接求解上式的结果为0.75

2. 朴素贝叶斯分类器

不难发现,基于贝叶斯公式来估计后验概率P(c|x)的主要困难在于:类条件概率P(x|c)是所以属性上的联合概率(即x代表的是多个属性),难以从有限的训练样本直接估计而得。为了避开这个障碍,朴素贝叶斯分类器(naive Bayes classifier)采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。换言之,假设每个属性独立地对分类结果发生影响。

朴素贝叶斯算法步骤

  1. 设某样本属性集合x={x1,x2,...,xn}其中n为属性数目,xi为x在第i属性上的取值。
  2. 把这个样本划分为类别集合c中的某一类,C={y1,y2,...,ym}.
  3. 计算后验概率:

1631677523(1).jpg 其中p(xyi)=P(x1yi)p(x2yi)...p(xnyi)p(x|yi)=P(x1|yi)p(x2|yi)...p(xn|yi)。(每个特征相互独立)

计算p(xiyi)p(xi|yi):首先找到一个已知类别分类集合,在这个集合中统计特征属性在各个类别下的条件概率,即得到我们要计算的p(xiyi)p(xi|yi)

注意:上式中分母部分对于所有类别来说都是一样的。因此可以省略,针对于不同的yiyi,仅需要比较P(yix)P(yi|x)的分子部分。

  1. 如果P(yix)=maxP(y1x),P(y2x),...,P(ymx)P(yi|x)=max{P(y1|x),P(y2|x),...,P(ym|x)},则样本再属性集x下属于yiyi

3. 朴素贝叶斯分类实例

我们继续以买西瓜为实例。现在,我们有包含10个样本的数据集,这组数据集是以纹理、色泽、敲声为特征判断是好瓜还是坏瓜。数据集如下: 1631678574(1).jpg 其中,纹理分为:清晰和模糊,色泽分为:青绿和乌黑,敲声分为:浊响、沉闷和清脆。不同的特征值组合对应着两类:好瓜还是坏瓜。

现在,我从超市中挑选了一个西瓜,它的纹理清晰、色泽青绿、敲声沉闷。我们可以根据样本数据集和朴素贝叶斯算法来计算该西瓜是好瓜还是坏瓜。

(1)首先,计算好瓜的情况:

先验概率:P(好瓜)=6/10=0.6

条件概率:P(纹理清晰|好瓜)=4/6=2/3

条件概率:P(色泽青绿|好瓜)=4/6=2/3

条件概率:P(敲声沉闷|好瓜)=2/6=1/3

计算后验概率P(好瓜|纹理清晰、色泽青绿、敲声沉闷)分子部分:

P(好瓜)x P(纹理清晰|好瓜)x P(色泽青绿|好瓜)x P(敲声沉闷|好瓜)= 0.6 × (2 / 3) × (2 / 3) × (1 / 3) = 4 / 45。

(2)然后,计算坏瓜的情况:

先验概率:P(坏瓜)=4/10=0.4

条件概率: P(纹理清晰|坏瓜) =1/4=0.25

条件概率: P(色泽青绿|坏瓜) =1/4=0.25

条件概率: P(敲声沉闷|坏瓜) =1/4 =0.25

计算后验概率P(坏瓜|纹理清晰、色泽青绿、敲声沉闷)分子部分:

P(坏瓜) × P(纹理清晰|坏瓜) × P(色泽青绿|坏瓜) × P(敲声沉闷|坏瓜) = 0.4 × 0.25 × 0.25 × 0.25 = 1 / 160。

(3)比较好瓜、坏瓜类别中的后验概率:

P(好瓜|纹理清晰、色泽青绿、敲声沉闷)> P(坏瓜|纹理清晰、色泽青绿、敲声沉闷),即4/45 > 1/160,所以预测该纹理清晰、色泽青绿、敲声沉闷西瓜为好瓜。

4. 关于朴素贝叶斯容易忽略的点

  1. 由上文看出,计算各个划分的条件概率P(xyi)P(x|yi)是朴素贝叶斯分类的关键性步骤,当特征属性为离散值时,能很方便的统计训练样本中各个划分在每个类别中出现的频率即可用来估计P(xyi)P(x|yi)当特征属性为连续值时,通常假定其值服从高斯分布(也称正态分布)。因此只要计算出训练样本中各个类别中此特征项划分的各均值和标准差,代入上述公式即可得到需要的估计值。
  2. 另一个需要讨论的问题就是当P(xyi)=0P(x|yi)=0怎么办,当某个类别下某个特征项划分没有出现时,就是产生这种现象,这会令分类器质量大大降低。为了解决这个问题,我们引入Laplace校准,它的思想非常简单,就是对每个类别下所有划分的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为0的尴尬局面。