朴素贝叶斯分类器:例子解释

时间:2022-12-20 12:41:19

戳上面的蓝字关注我们!朴素贝叶斯分类器:例子解释


作者:alg-flody

编辑:Emily


今日话题朴素贝叶斯分类器:例子解释在昨天推送了用一个例子引入贝叶斯公式的基本思想,然后用贝叶斯公式对一个很简单的问题做分类,最后引出来一个问题:后验概率 P(c | x) 的求解转化为求解 P(c)和 P(x | c),P(c) 根据大数定律容易求得,所以 P(x | c)成为了最核心也是最迫切需要求解的问题。下面,借助一个例子解释它是如何求解的,这个求解思想有一个很朴素的名字:朴素贝叶斯分类器。 1 一堆苹果


笔者比较喜欢吃苹果,所以举例子总是会想起苹果,所以去超市买水果时,苹果往往是必备的。长年累月,摸索了一套挑选苹果的方法,一般红润而圆滑的果子都是好苹果,泛青无规则的一般都比较一般,现在根据之前几次买过的苹果,已经验证过了10个苹果,主要根据大小,颜色和形状这三个特征,来区分是好是坏,如下:


编号   大小         颜色            形状           好果

   1     小           青色             非规则         否

   2     大            红色            非规则         是

   3     大            红色            圆形             是

   4     大            青色            圆形             否

   5     大            青色            非规则         否

   6     小           红色             圆形             是

   7     大           青色             非规则         否

   8    小            红色             非规则         否 

    9     小           青色             圆形            否 

  10      大            红色            圆形             是


现在在超市我正要买的一个苹果的特征如下:

大小       颜色            形状        好果

大           红色            圆形       


问是好果还是一般的苹果?


假定,苹果的三个特征:大小,颜色,形状,是相互独立的,言外之意它们之间没有相关关系,关于相关关系的概念,请参考:相关系数 。


2 引出:类条件概率


第1节中的例子:10条苹果的数据为例,来解释下贝叶斯公式中一个非常重要的概率:P(x | c) ,理解它关系到对贝叶斯分类器整体的理解,因此好好理解下。 


首先它是一个条件概率,是在 c 发生的条件下,x 出现的概率。 那么  c 是什么? c是整个数据集中所有种类中的一种,比如是好苹果,这个类; x 是在好苹果这个类别中所有属性的可能取值,在上面这个例子中,一共有3个属性,每个属性有2个不同取值,因此共有8个不同组合,所以 x 就是在8种不同取值中每个取值的样本个数。


例如在好苹果这类中,取值为 大,红色,圆形的样本有几个呢? 先找出好苹果的集合(个数是4),然后在这4个样本里找,发现有3个样本取值都为大,红色和圆形,所以 x 在8中不同取值中的这种组合下的样本个数为:3,所以 

P(xi | c)=    3 / 4 

其中 i 为1~8中的某个取值,在本例中为:大,红色,圆形


这里,称 P(x | c) 这种概率为:类条件概率,它等于在训练集中属于类别 c 的所有样本中,所有属性组合的样本出现的概率。


3 属性独立的假设


记得刚开始说过,苹果的三个特征之间是相互独立的,这个假设是很有用的。为什么?


因为类的后验概率 P(x | c) 计算公式如下:


朴素贝叶斯分类器:例子解释

在三个特征间相互独立的前提假定下,类条件概率的计算公式便可以进一步推导为如下:


朴素贝叶斯分类器:例子解释

其中,d是样本的所有属性个数

 

这个意思是说,因为各个属性间相互独立,所以类条件概率等于每个属性的类条件概率的乘积。


因此,联合上面两个式子,可以得到如下式子:


朴素贝叶斯分类器:例子解释



4 朴素贝叶斯分类器


由于对所有类别来说,P(x)是相同的,因此贝叶斯分类器的目标函数进一步化简为如下:

朴素贝叶斯分类器:例子解释

其中 c 为所有类别中的每一个,比如苹果数据中一共有两个类别:好果,坏果。


称上面式子为朴素贝叶斯分类器的目标函数,明显地,朴素贝叶斯分类器的训练学习的过程便是基于训练数据(苹果集),求得类的先验概率P(c),并且为每个属性求得类条件概率,然后相乘取最大值的过程。


下面进一步通过苹果数据集来阐述这一过程,这是理解的朴素贝叶斯分类器的过程,用很小的数据个数方便理解,将来应付大的数据集道理也是一样的。


5 应用朴素贝叶斯分类器


这是刚开说的那堆苹果集,为了方便数数,再放到这里:


编号   大小         颜色            形状           好果

   1     小           青色             非规则         否

   2     大            红色            非规则         是

   3     大            红色            圆形             是

   4     大            青色            圆形             否

   5     大            青色            非规则         否

   6     小           红色             圆形             是

   7     大           青色             非规则         否

   8    小            红色             非规则         否 

    9   小           青色             圆形             否 

  10    大            红色            圆形             是

现在在超市我正要买的一个苹果的特征如下:

大小       颜色            形状        好果

大           红色            圆形       


问是好果还是一般的苹果,根据已有的数据集概率是多大?

先验概率 P(c) ,简化的求解方法:c类样本的个数除以所有样本个数,因此:

P(c=好果)=  4/10

P(c=一般) = 6/10


每个属性的类条件概率,可以初步这么求解:这个类别下的样本中对应这个属性的样本个数除以这个类别下的样本个数,因此:

P(大小=大 | c=好果) =   3/4

P(颜色=红色 | c=好果) = 4/4

P(形状=圆形 | c=好果) = 3/4


P(大小=大 | c=一般) =  3/6

P(颜色=红色 | c=一般) = 1/6

P(形状=圆形 | c=一般) =  2/6


因此:  

P(c=好果) * P(大小=大 | c=好果)P(颜色=红色 | c=好果) * P(形状=圆形 | c=好果)  

4/10 * 3/4 * 4/4 * 3/4 

= 0.225


P(c=一般) * P(大小=大 | c=一般) * P(颜色=红色 | c=一般) * P(形状=圆形 | c=一般)  

6/10 * 3/6 * 1/6 * 2/6

= 0.0167


显然,0.2250.0167  所以:这个苹果为好果


6 展望


如果要预测如下这个苹果是好果吗? 

大小       颜色            形状        好果

大           青色            圆形        


通过已知的数据集发现: 
 P(颜色=青色 | c=好果) = 0,那么无论 P(其他属性 | c=好果) 取值为多大,哪怕在其他属性上取值多么像好果,相乘后都为0,这显然不太合理,那么有没有解决方法呢? 请看明天的推送:概率估计的平滑处理


谢谢您的阅读!

朴素贝叶斯分类器:例子解释

交流思想,注重分析,看重过程,包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战,英语沙龙,定期邀请专家发推。期待您的到来!