朴素贝叶斯
贝叶斯公式
贝叶斯公式作为朴素贝叶斯的一个基础,先让我们看一下贝叶斯公式是如何得到的。
条件概率公式
设A、B是两个事件,且P(B)>0,则在事件B发生的条件下,事件A发生的概率为:
乘法公式
乘法公式是经过条件概率变换后得到的公式,结果如下:
全概率公式
如果事件B1,B2,…满足:
1.B1,B2…两两互斥,也就是Bi ∩ Bj = ∅ ,i≠j , i,j=1,2,…,且P(Bi)>0,i=1,2,…;
2.B1∪B2∪…=Ω ,则称事件组 B1,B2,…是样本空间Ω的一个划分,设 B1,B2,…是样本空间Ω的一个划分,A为任一事件,则有全概率公式如下:
贝叶斯公式
了解了上面的三种公式再让我们来看一下贝叶斯公式,我们换一种思路,现在我们已知事件B发生的概率,也知道了在事件B发生的条件下事件A发生的概率,根据这些条件我们如何去求事件A发生的条件下事件B发生的概率呢?也就是我们常说的根据先验概率去求后验概率是怎么一回事呢?
根据条件概率公式和乘法公式我们可以得到如下图所示的关系:
与全概率公式解决的问题相反,贝叶斯公式是建立在条件概率的基础上寻找事件发生的原因(即大事件A已经发生的条件下,分割中的小事件Bi的概率),设B1,B2,…是样本空间Ω的一个划分,则对任一事件A(P(A)>0),有
当我们不知道事件A发生的概率的情况下,我们考虑使用全概率公式来替换P(A),得到如下的贝叶斯公式:
Bi 常被视为导致试验结果A发生的”原因“,P(Bi)(i=1,2,…)表示各种原因发生的可能性大小,故称先验概率;P(Bi|A)(i=1,2…)则反映当试验产生了结果A之后,再对各种原因概率的新认识,故称后验概率。
朴素贝叶斯
我们得到了贝叶斯公式之后,再让我们来了解一下朴素贝叶斯算法是怎么一回事。
首先根据“朴素贝叶斯”这个名字中不难发现,相对于贝叶斯我们多了一个叫做“朴素”的词语,那么朴素究竟代表着什么呢?
我们不妨先把贝叶斯公式换成我们机器学习中常用的特征和类别的方式来表示一下:
我们都知道对于式子中的先验概率P(特征|类别)而言,我们的实际场景中往往有很多的类别和特征,那么对应的我们的先验概率也就变成了一个所有特征上的联合概率,导致我们很难从有限的训练样本估计而得到,为了避开这个障碍朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知类别,假设所有特征相互独立,也可以说,假设每个特征独立地对分类结果发生影响。这就是我们对于“朴素”一词的理解,也是朴素贝叶斯对应着的一个前提条件。
假设我们有特征1、特征2、特征3,对应着我们根据“朴素”的思想就可以把先验概率表示为如下的形式:
或许这样还是比较抽象,下面让我们通过一个简单的“挑西瓜”的例子来计算一下:
假设我们有如下的一组关于西瓜的数据:
特征
瓜蒂:脱落|未脱落
形状:尖形|圆形
颜色:深绿|浅绿|青色
类别
类别:瓜熟|瓜生
现在有一西瓜(脱落|圆形|青色)我们如何去判断它的生熟呢?
对于熟瓜,我们可以得到样本中瓜熟的概率
拉普拉斯平滑
以上就是我们根据朴素贝叶斯的思想进行挑西瓜的例子,是不是很简单,但是这只是我们理想情况的计算方式,如果我们在进行联合概率的连乘的时候,有某一项的值为0了,那么此时也将会导致我们整个式子的结果为0,为了解决这种情况的发生我们有一种特殊的策略“拉普拉斯平滑”。
对于某个数据集,我们考虑到对于某个特征X在训练集中没有出现,那么将会导致整个分类概率变为0,这将会导致分类变得非常不合理,所以为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。假定训练样本很大时,每个分量x的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。
应用举例:
假设在文本分类中,有3个类,C1、C2、C3,在指定的1000个训练样本中,某个词语K1,在各个类中观测计数分别为0,990,10,K1的概率为0,0.99,0.01。
对这三个量使用拉普拉斯平滑的计算方法如下:
常见的三种朴素贝叶斯
多项式朴素贝叶斯
高斯朴素贝叶斯
伯努利朴素贝叶斯