介绍
朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。朴素贝叶斯法与贝叶斯估计是两个不同的概念。在学习朴素贝叶斯之前,你需要先知道条件概率、联合概率、先验概率、后验概率、贝叶斯公式,如果你不是很清楚,可以打开概率论书本或者百度一下,当然其中一些概念在下面我也会提到。(本篇文章主要基于《统计学习方法》进行讲解)
先前知识
我们先举出一个训练集,便于接下来举例讲解,如下图1,该例子来源于《统计学习方法》,例子中共有15个样本,X1、X2为两个特征,其中X1的取值有“1”、“列出”、“3”三种,X2的取值为“S”、“M”、“L”三种,Y为每个样本的标签。
基本假设
训练集表示为:
朴素贝叶斯法的基本假设是条件概率的独立性,
(1)
这一假设使得朴素贝叶斯法的计算变得简单,但是会牺牲一定的精确度。这个假设也是对“朴素”一词的解释。
先验概率
下面我们先来计算先验概率,先验概率分布公式为:
(2)
这个例子中Y只有1,-1两类,因此K=2。先验概率的极大似然估计为:
(3)
其中N为总样本个数,为指示函数从公式可以看出的值即为的样本数除以总样本数,则训练数据集的先验概率为:
,
条件概率
条件概率为事件A在事件B发生的条件下发生的概率,一般写为,条件概率的公式有:
(4)
其中为联合概率,表示A、B同时发生的概率。
以训练样本为例,特征X1=2在Y=1下的概率可是表示为:
考虑到公式的一般性,也可以写为:
(5)
和上一个公式相比,就是事件A、B调换了下位置。此时,我们把两个公式合并,消去其中的,则可以得到:
(6)
贝叶斯公式
贝叶斯公式的形式与上述公式(6)有点相似。
假设互斥且构成一个完全事件,已知它们的概率,现观察到某事件A与相伴随机出现,且已知条件概率,那么为:
(7)
上面的公式可能看起来有点复杂,我们将其改写成,符合我们训练集的形式:
(8)
其中就是后验概率,也是我们需要去求的,可以解释为在给定条件下,分类的概率,贝叶斯计算的最后,会取概率最大的分类作为预测分类。
朴素贝叶斯法
有了之前的铺垫,咱们现在就可以正式进入朴素贝叶斯了,将公式(1)代入公式(7),可得:
(9)
我们要得到的是概率最大的分类,因此可以表示为:
(10)
我们可以发现上公式分母为一个常数,不影响最后输出的类别,因此我们可以将公式简化为:
(11)
好了,下面让我们一起进入快乐的实践环节吧,当然还是根据之前的例子来,
现在我们假设有一个未知类别的数据,我们需要通过朴素贝叶斯分类来计算求得其最可能属于的分类。我们分别其属于计算的概率,然后取最大值作为的分类。
可以明显看出属于-1的概率要大于1,因此判断属于类别。
贝叶斯估计
使用上述公式进行计算类别的时候,有时候会遇到一个很尴尬的情况。以特征X2为例,(此处是假设哦,不要对着上面的训练集数据一直看0.0)假设所有有S的样本,其分类都为1,没有-1的分类,因此计算条件概率,带入到朴素贝叶斯法分类中进行计算时,其概率直接为0,因为0乘任何数都为0,这会导致结果出现偏差。
因此引入贝叶斯估计,贝叶斯估计的实质是在每个特征的所有取值类别的数量上加一个(),例如刚刚假设的X2特征的类别S,在分类上没有样本,因此S在上的数量为0,此时,我们加入一个,则条件概率变为:
通常,此时称为拉普拉斯平滑。我们将其推成一般式:
(12)
其中是第个样本第个特征,为第个特征可能取得的第个值,为特征可能有个取值。
接下来我们利用贝叶斯估计再来计算下的分类,
,
可以看出还是将归于。