目录
一、朴素贝叶斯
朴素贝叶斯(Naive Bayes)是一种基于概率理论的分类算法,以贝叶斯理论为理论基础,通过计算样本归属于不同类别的概率来进行分类,是一种经典的分类算法。朴素贝叶斯是贝叶斯分类器里的一种方法,之所以称它朴素,原因在于它采用了特征条件全部独立的假设。
二、朴素贝叶斯理论
朴素贝叶斯
优点:在数据较少的情况下仍然有效,可以处理多类别问题。
缺点:对于输入数据的准备方式较为敏感。
适用数据类型:标称型数据。
朴素贝叶斯是贝叶斯决策理论的一部分,所以讲述朴素贝叶斯之前有必要快速了解一下贝叶斯决策理论。
假设现在有一个数据集,它由两类数据组成(红色和蓝色),数据分布如下图所示。
现在用p 1 ( x , y ) p1(x,y)p1(x,y)表示数据点( x , y ) (x,y)(x,y)属于类别1(图中圆点表示的类别)的概率,用p 2 ( x , y ) p2(x,y)p2(x,y)表示数据点( x , y ) (x,y)(x,y)属于类别2(图中三角形表示的类别)的概率,那么对于一个新的数据的( x , y ) (x,y)(x,y),可以用下面的规则来判断它的类别:
如果p 1 ( x , y ) > p 2 ( x , y ) p1(x,y) > p2(x,y)p1(x,y)>p2(x,y),那么类别为1
如果p 1 ( x , y ) < p 2 ( x , y ) p1(x,y) < p2(x,y)p1(x,y)<p2(x,y),那么类别为2
也就是说,会 选择高概率所对应的类别。这就是贝叶斯决策理论的核心思想,即选择具有最高概率的决策。
三、条件概率
已知两个独立事件A和B,事件B发生的前提下,事件A发生的概率可以表示为P(A|B)。条件概率表示为P(A|B)。
即上图中橙色部分占红色部分的比例,可以表示为:
则我们可以得到:
同样地,在事件A发生的条件下事件B发生的概率为:
我们也可以得到:
于是我们就可以,结合上面的式子得到:
通过变换上面的等式,所以有条件概率的公式:
四、朴素贝叶斯分类器
先验概率P(X):先验概率是指根据以往经验和分析得到的概率。
后验概率P(Y|X):事情已发生,要求这件事情发生的原因是由某个因素引起的可能性的大小,后验分布P(Y|X)表示事件X已经发生的前提下,事件Y发生的概率,称事件X发生下事件Y的条件概率。
后验概率P(X|Y):在已知Y发生后X的条件概率,也由于知道Y的取值而被称为X的后验概率。
朴素:朴素贝叶斯算法是假设各个特征之间相互独立,也是朴素这词的意思,那么贝叶斯公式中的P(X|Y)可写成:
朴素贝叶斯公式:
朴素贝叶斯分类器:朴素贝叶斯分类器(Naïve Bayes Classifier)采用了“属性条件独立性假设” ,即每个属性独立地对分类结果发生影响。为方便公式标记,不妨记P(C=c|X=x)为P(c|x),基于属性条件独立性假设,贝叶斯公式可重写为:
其中d为属性数目, 为 在第 个属性上的取值。
由于对所有类别来说 P(x)相同,因此MAP判定准则可改为:
其中 和 为目标参数。
朴素贝叶斯分类器的训练器的训练过程就是基于训练集D估计类先验概率 ,并为每个属性估计条件概率 。
令 表示训练集D中第c类样本组合的集合,则类先验概率:
拉普拉斯修正:若某个属性值在训练集中没有与某个类同时出现过,则训练后的模型会出现 over-fitting 现象。比如训练集中没有该样例,因此连乘式计算的概率值为0,这显然不合理。因为样本中不存在(概率为0),不代该事件一定不可能发生。所以为了避免其他属性携带的信息,被训练集中未出现的属性值“ 抹去” ,在估计概率值时通常要进行“拉普拉斯修正”。
,我们要修正 的值。
令 N 表示训练集 D 中可能的类别数, 表示第i个属性可能的取值数,则贝叶斯公式可修正为:
\hat{P}(x_i|c) =\frac{|D_c,_x_i|+1}{|D|+N_i}
防溢出策略:条件概率乘法计算过程中,因子一般较小(均是小于1的实数)。当属性数量增多时候,会导致累乘结果下溢出的现象。
在代数中有 ,因此可以把条件概率累乘转化成对数累加。分类结果仅需对比概率的对数累加法运算后的数值,以确定划分的类别。