机器学习|朴素贝叶斯(Naive Bayes)算法总结

举报
华为云社区精选 发表于 2018/01/31 10:34:02 2018/01/31
【摘要】 1. 简单定义朴素贝叶斯是一种简单快速的有监督学习类线性分类算法。那么如何解读上面这句定义?从描述定义的词汇入手。a. 线性分类:分类是一种确定数据类别的问题,例如天气阴晴,花开花谢,水果酸甜等。其目标是将具有相似或相同特征的对象聚集。而线性分类(器)透过特征的线性组合来坐出分类决定。也就是说不同类别之间的分类边界要为线性,如下图。线性算法的优点是训练和预测的效率比较高,但最终效果

1.     简单定义

朴素贝叶斯是一种简单快速的有监督学习类线性分类算法。


那么如何解读上面这句定义?从描述定义的词汇入手。


a.     线性分类:分类是一种确定数据类别的问题,例如天气阴晴,花开花谢,水果酸甜等。其目标是将具有相似或相同特征的对象聚集。而线性分类(器)透过特征的线性组合来坐出分类决定。也就是说不同类别之间的分类边界要为线性,如下图。

image.png

线性算法的优点是训练和预测的效率比较高,但最终效果对特征的依赖程度较高,需要数据在特征层面上是线性可分的


b.    有监督学习:监督学习是指用已经标记好的数据,做训练来预测新数据的类型,或者是值。预测已有类型叫做分类,预测一个值叫做回归。与无监督学习最简单的区分方法就是看训练样本数据有无标签,有即有监督学习,没有即无监督学习。


c.     朴素:假设某个特征的出现与其它特征的出现是独立的。举个例子:想要根据颜色、形状、味道去识别一种水果,那么橙色、球形、味道酸甜的水果很可能是橘子。上述描述中,即使这些特征依赖于彼此或取决于其他特征的存在,所有这些特性均可以单独地提升该果实是橘子的可能性,这就是为什么它被称为朴素


d.    贝叶斯定理:直白的说,贝叶斯定理实际描述用于计算条件概率的方法和公式。最简单的两事件情况下,条件概率就是在事件B发生的情况下,另一事件A发生的概率,数学形式为P(A|B)。更直观的解释可借用下面的文氏图描述。

image.png

在事件B发生的情况下,事件A发生的概率为

image.png

则:

image.png

即:

image.png


得到的条件概率计算公式为,


image.png

此时需要对P(B)做一个引申,即需要知道事件B的全概率。则推广上述的场景至更广义一些。假定一个样本空间为S,是两事件AA’的和,如图:

image.png

引入事件B后,事件B可划分为两个部分,1)与事件A重合的部分;2)与事件A’重合的部分。则事件B的概率为:

image.png

由上页的推导可得出:

image.png

上述公式即为全概率公式。它的含义是,如果AA'构成样本空间的一个划分,那么事件B的概率,就等于AA'的概率分别乘以B对这两个事件的条件概率的和。将这个公式代入上一节的条件概率公式,就得到了条件概率的另一种写法:

image.png

为了更直观的理解,在此举一个例子:

image.png


两个一模一样的碗,一号碗有30颗水果糖和10颗巧克力糖,二号碗有水果糖和巧克力糖各20颗。现在随机选择一个碗,从中摸出一颗糖,发现是水果糖。请问这颗水果糖来自一号碗的概率有多大?

我们假定,W1表示一号碗,W2表示二号碗。由于这两个碗是一样的,所以P(W1)=P(W2),也就是说,在取出水果糖之前,这两个碗被选中的概率相同。因此,P(W1)=0.5,没有做实验之前,来自一号碗的概率是0.5

再假定,T表示水果糖,所以问题就变成了在已知T的情况下,来自一号碗的概率有多大,即求P(W1|T)

image.png


已知,P(W1)等于0.5P(T|W1)为一号碗中取出水果糖的概率,等于0.75,那么求出P(T)就可以得到答案,根据全概率公式得到:

image.png


上述解释只是针对空间内总样本数为2的情况,一般在机器学习中对训练样本和测试样本的数量要求很大,对于基础的二分类,就是把标签为0和1的样本分别取出,建立两种训练模型model0model1在判别测试样本时会把这些样本的特征分别代入model0model1,选取拟合更好的模型。因此再推广朴素贝叶斯的公式至二分类一般情况下:

image.png


由全概率公式可知:

image.png


则:

image.png


根据朴素贝叶斯性质得知,若x1x2……..xn之间相互独立,则有:

image.png


(举个例子便于理解,在下雨天时小明穿板鞋的概率是0.9,下雨天时小明吃米饭的概率为0.5,那么下雨天小明穿着板鞋吃米饭的概率为0.5 x 0.9 =0.45。)

代入上页公式可得:

image.png


P(xi|y=1)表示所有的标签为1的样本中,xi=1的样本所占的比率,P(xi|y=0)表示所有标签为0的样本中xi=1的比率。那么如何得知P(y=1)P(y=0)呢?其实很容易理解,P(y=1)是训练样本中标签为1的样本比率,P(y=0)表示标签为0的样本的比率,在样本空间中找出标签为1的样本与总样本数m的比值即为P(y=1),同理可得P(y=0)


2.      解释说明与分析


a.     逻辑解释

image.png


在二分类一般形式的朴素贝叶斯公式中,可以将等式右边分为P(y=1)image.png

的乘积,我们将P(y=1)称为先验概率

image.png


称为可能性函数,即调整因子;而等式左边的

image.png


称为后验概率。那么公式就可以理解为:

后验概率 = 先验概率 x 调整因子


这就是贝叶斯推断的含义。我们先预估一个"先验概率",然后加入实验结果,看这个实验到底是增强还是削弱了"先验概率",由此得到更接近事实的"后验概率"在这里,如果调整因子

image.png

意味着"先验概率"被增强,事件A的发生的可能性变大;如果调整因子=1,意味着B事件无助于判断事件A的可能性;如果调整因子<1,意味着"先验概率"被削弱,事件A的可能性变小。在某种意义上讲,这个公式可以总结历史,预知未来。


b.    普适推广至多分类下的朴素贝叶斯

在更多的情况下,样本的分类情况远远多于二分,标签的数量不只是2。那么一般化多分类的朴素贝叶斯可表示为:

image.png


我们可定义77.PNG为最大后验值,88.PNG函数定义为求出使目标函数取得最大值对应的自变量:

image.png

       由于x1x2……..xn之间相互独立,则有:

image.png

       由于99.PNG给定输入为常数,则有:

image.png

       实际上,上式右边就是朴素贝叶斯分类器公式:

image.png


c.     朴素贝叶斯优缺点


优点:

这是一个相对容易构建和理解的算法。

使用该算法比许多其他分类算法能更快地预测类。

使用小数据集也可以容易地训练数据

类条件特征独立分布意味着每个类分布可以独立地估计为一维分布。这又有助于缓解数据降维带来的问题


缺点:

如果给定没有出现过的类和特征,则该类别的条件概率估计将出现0,该问题被称为“零条件概率问题”。这是一个问题,因为它会擦除其他概率中的所有信息

另一个缺点是它的特征之间独立的假设非常强。 在现实生活中几乎很难找到这样的数据集。在属性个数比较多或者属性之间相关性较大时,朴素贝叶斯分类模型的分类效率低。而在属性相关性较小时,朴素贝叶斯分类模型的性能最为良好


d.    改进

拉普拉斯平

拉普拉斯平滑是为了解决上述零条件概率问题。考虑一种特殊情况,如果样本中变量xi的取值全部为0,即P(xi|yj)=0,则式子image.png的结果也为0,显然不合理。因此需要对0概率进行调整。对于此问题,数学家拉普拉斯提出了加1平滑法,以基础的二分类为例:

image.png

更一般情况下,加入xik个不同的取值,当样本数量足够大时加入拉普拉斯平滑后并不会影响到概率的,概率为:

image.png

作者|王天鸿


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。