Advertisement

机器学习之朴素贝叶斯-朴素贝叶斯的原理实现

阅读量:

朴素贝叶斯原理Naive

1.简介

贝叶斯分类算法是统计学中的一种概率分类方法,朴素贝叶斯分类是贝叶斯分类中最简单的一种。其分类原理就是利用贝叶斯公式根据某特征的先验概率计算出其后验概率,然后选择具有最大后验概率作为该特征所属的类。朴素贝叶斯的整体思想就是不一定需要知道全部的概率,根据一组已知的数据集合(训练集)的概率,推算出测试类应该更大概率的属于哪一分类。

之所以称之为“朴素”,因为它简单、易于操作,基于特征独立性假设,假设各个特征不会相互影响,无关顺序。这样就大大减小了计算概率的难度。

2.数学基础

2.1相对独立

所有特征之间是统计独立的,如假设某样本X有a1,a2,…an个属性,那么有
P(X)=P(a_{1} ,a_{2} ,...a_{n} )=P(a_{1} )\times P(a_{2} )\times ....\times P(a_{n} )

2.2条件概率

P(A|B)表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率
P(A|B)=\frac{P(AB)}{P(B)}

2.3乘法公式(走路)

P(AB)=P(B)\times P(A|B)=P(A)\times P(B|A)

2.4全概率公式(从原因到结果)

考察在每一种情况下事件A发生的概率,计算B的概率。若事件A1,A2,A3…An构成一个完备事件且都有正概率,那么对于任意一个事件B,都有
P(B)=P(BA_{1})+P(BA_{2})+...+P(BA_{n})=P(B|A_{1})P(A_{1})+P(B|A_{2}P(A_{2})+...P(B|A_{n})P(A_{n})

P(B)=\sum_{i=1}^{n} P(A_{i})P(B|A_{i} )

2.5贝叶斯公式(从结果到原因)

如果有k个互斥且有穷个事件B1 , B2···,Bk,并且P(B1)+P(B2)+···+P(Bk)=1和一个可以观测到的事件A,那么有:
P(Bi|A)=\frac{P(Bi\cap A)}{P(A)} =\frac{P(Bi)P(A|Bi)}{P(B1)P(A|B1)+P(B2)P(A|B2)+⋅⋅⋅+P(Bk)P(A|Bk)}

3.算法原理

3.1朴素贝叶斯公式推导

由条件概率公式:
P(A|B)=\frac{P(AB)}{P(B)}
可以推导出:
P(AB)=P(A∣B)P(B)
同理可得:
P(AB)=P(B∣A)P(A)
故:
P(B∣A)P(A)=P(A∣B)P(B)
可以推出贝叶斯公式:
P(A|B)=\frac{P(B|A)P(A)}{P(B)}

3.2公式分析

P(A) :为先验概率,即在B 事件发生之前,对A 事件发生概率的预判。

P(A|B) :为后验概率,即在B 事件发生之后,对A 事件发生概率的重新评估。

P(B|A)/P(B) :为可能性函数,是一个调整因子,使得预估概率更加接近真实概率。

所以贝叶斯公式可以表示为:后验概率=先验概率 * 调整因子
调整因子 \left\{\begin{matrix}>1先验概率被增强,A发生的可能性变大 \\ =1 意味着B事件无助于判断A可能性 \\ \right.

3.3算法流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CRan4Jsr-1605410861155)(D:\Typora\图片\朴素贝叶斯算法流程.png)]

1、找到一个已知分类的待分类项集合,这个集合叫做训练样本集。

2、统计得到在各类别下各个特征属性的条件概率估计。即

P(a1|y1),P(a2|y1)…P(am|y1);P(a1|y2),P(a2|y2)…P(am|y2);…;P(a1|yn),P(a2|yn)…P(am|yn)

3、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:
P(y_{i}|x )=\frac{P(x|y_{i} )P(y_{i} )}{P(x)}
4.分母P(x)对于所有类别都是常数,故当分子最大的时候,后验概率即为最大,由朴素贝叶斯各特征属性是相互独立的,所以有
P(x|y_{i} )P(y_{i})=P(y_{i})\prod_{j=1}^{m}P(a_{j}|y_{m} )
5.选取最大的作为测试项最后的类别
\hat{y} =argmaxP(y_{i})\prod_{j=1}^{m}P(a_{j}|y_{m} )

3.4拉普拉斯平滑

在某个分类下, 为防止训练集中某个特征值和某个类别未同时出现过,导致预测概率为0。所以需要进行拉普拉斯平滑处理 。原理就是通过增加每个特征的样本数(分子+拉普拉斯系数k,分母+k*特征数),从而达到扩充样本数的目的,使得结果更加均匀,避免出现0概率项。拉普拉斯系数通常取1.

4.优缺点

1.监督学习,需要确定分类的目标

2.对缺失数据不敏感,在数据较少的情况下依然可以使用该方法

3.可以处理多个类别 的分类问题

4.适用于标称型数据

5.对输入数据的形势比较敏感

6.由于用先验数据去预测分类,因此存在误差

5.朴素贝叶斯种类

现在朴素贝叶斯算法一共有3种:高斯朴素贝叶斯、多项式朴素贝叶斯和伯努利朴素贝叶斯。

5.1高斯朴素贝叶斯(Gaussian NB)

在处理连续数据的分类时,我们通常选用高斯朴素贝叶斯算法。Gaussian NB就是先验概率为高斯分布的朴素贝叶斯。假设每一个特征的数据都服从高斯分布。
在这里插入图片描述

其中,Ck是Y的第k个类别,μ和σ为训练集的均值和标准差。

5.2多项式朴素贝叶斯(Multinomial NB)

多项式朴素贝叶斯就是先验概率为多项式分布的朴素贝叶斯。假设特征是由一个简单多项式分布生成的。多项式分布可以描述各种类型样本出现次数的概率,因此多项式朴素贝叶斯非常适合用于描述出现次数或者出现次数比例的特征。该模型常用于文本分类,特征值表示的是次数。公式如下:
在这里插入图片描述

其中,p(Xj=xjl|Y=Ck)是第k个类别的第j维特征的第l个取值的条件概率。mk是训练集中输出为第k类的样本个数。 n为数据的维度,λ是一个大于0的常数,当λ=1是,为拉普拉斯平滑。

5.3伯努利朴素贝叶斯(Bernoulli NB)

伯努利朴素贝叶斯就是先验概率为伯努利分布的朴素贝叶斯。假设特征的先验概率为二元博独立分布。
在这里插入图片描述
在伯努利模型中,每个特征的取值只有True和False。在文本分类中,就是一个特征有没有出现在一个文档中。

5.4总结

一般来说,如果样本特征的分布大部分是连续值,使用高斯朴素贝叶斯会比较好。

如果样本特征的分布大部分是多元离散值,使用多项式朴素贝叶斯比较合适。

167)]

在伯努利模型中,每个特征的取值只有True和False。在文本分类中,就是一个特征有没有出现在一个文档中。

5.4总结

一般来说,如果样本特征的分布大部分是连续值,使用高斯朴素贝叶斯会比较好。

如果样本特征的分布大部分是多元离散值,使用多项式朴素贝叶斯比较合适。

如果样本特征是二元离散值或者很稀疏的多元离散值,应该使用伯努利朴素贝叶斯比较合适。

全部评论 (0)

还没有任何评论哟~