简介
朴素贝叶斯算法是经典的机器学习算法之一,也是为数不多的基于概率论的分类算法,即通过考虑特征概率来预测分类。该算法采用了“特征属性独立性假设”的方法,即对已知类别,假设所有特征属性相互独立。换言之,假设每个特征属性独立地对分类结果发生影响。
朴素贝叶斯法是基于贝叶斯定理与特征属性独立假设的分类方法,属于监督学习的生成模型。对于给定的训练数据集,首先基于特征属性独立假设学习输入/输出的联合概率分布,然后基于此模型,对给定的输入,利用贝叶斯定理估计后验概率最大输出。
朴素贝叶斯法由稳定的分类效率,在大量样本下会有比较好的表现,对小规模的数据仍然有效,能处理多分类任务。其次,朴素贝叶斯适合增量式训练,即可以实时对新增样本进行训练。同时,由于朴素贝叶斯法对缺失数据不敏感,通常用于文本分类识别、欺诈检测、垃圾邮件过滤、拼写检查等领域。
贝叶斯分类器的基本原理就是:通过某对象的先验概率,利用贝叶斯公式计算出后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。
贝叶斯定理
先验概率:根据以往经验和分析得到的概率
全概率公式:设试验E的样本空间为S,A为E的事件,B1,B2,...,Bn为样本空间的一个划分,且P(Bi)≥0(i=1,2,...,n),则有:
贝叶斯定理:设试验E的样本空间为S,A为E的事件,B1,B2,...,Bn为样本空间的一个划分,且P(A)>0, P(Bi)≥0(i=1,2,...,n),则有:
朴素贝叶斯算法流程
朴素贝叶斯算法具体步骤
(1)确定特征属性xj,获取训练样本集合yj;
该步骤的主要工作就是根据具体情况确定特征属性,并对每个特征进行适当划分,然后人工对一部分待分类项进行分类,形成训练样本集合。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一步是整个朴素贝叶斯分类中唯一需要人工完成的阶段。
对于所有待分类数据,确定其特征属性xj,获取训练样本集合yj:
其中m表示m个样本,n表示每个样本有n个特征。yi表示训练样本,取值为{C1,C2,...,Ck}
(2)计算各类别的先验概率P(Y=Ck)
针对训练样本集,可以利用最大似然估计计算出先验概率。但为了弥补最大似然估计中可能出现概率值为0的情况,也就是某个事件出现的次数为0,我们可以使用贝叶斯估计计算先验概率:
其中
(3)计算各类别下各特征属性xj的条件概率P(Xj=xj|Y=Ck)(j=1,2,...,n)
①如果xj是离散值,可以假设xj符合多项式分布,这样得到的条件概率是在样本类别Ck中特征xj出现的频率,即:
有些时候,可能某些类别在样本中没有出现,这可能导致条件概率为0,这样会有效后验概率的估计。为了避免出现这样的情况,在这里引入拉普拉斯平滑,即此时有:
②如果xj是稀疏二项离散值,即各个特征出现概率很低,可以假设xj符合伯努利分布,即特征xj出现记为1,不出现记为0。这里不关注xj出现的次数,这样得到的条件概率是在样本类别Ck中xj出现的频率。此时有:
③如果xj是连续值,通常取xj的先验概率为正态分布,即在样本类别Ck中,xj的值符合正态分布。这样得到的条件概率分布是:
其中,μk和σ2是正态分布的期望和方差,可以通过最大似然估计求得,μk为在样本类别Ck中,所有Xj的均值。σ2为在样本类别中,所有Xj的方差,对于一个连续的样本值,代入正态分布的公式,就可以得到概率分布。
(4)计算各类别的后验概率P(Y=Ck|X=x)
由于假设各特征属性是条件独立的,则根据贝叶斯定理,各类别的后验概率有如下的推导:
(5)把后验概率最大项作为样本所属类别
预测的样本所属类别Cresult是使得后验概率P(Y=Ck|X=x)最大化的类别,推导如下:
由于对于所有类别计算后验概率时,分母是一样的,因此预测公式可以进一步简化为:
利用朴素贝叶斯的独立性假设,就可以得到通常意义上的朴素贝叶斯推断公式:
贝叶斯分类器的主要特点