朴素贝叶斯入门

来源:互联网 发布:淘宝关注的主播在哪里 编辑:程序博客网 时间:2024/05/17 01:41

这篇文章是记录一些学习朴素贝叶斯过程中的心得....

——————————————————————————————————————————————————

1.前言

补充知识1:

有关先验概率、后验概率,网上已经许多的讨论,下面是知乎中对这个问题的讨论,可以参考一下:
先验概率,后验概率的区别?
我个人觉得可以简单的这么理解:

先验概率:

先验概率其实就是通过统计或者是经验所得到事件A所发生的概率。

后验概率:

后验概率其实就是在观察了事件B或说事件B已经发生的条件下,事件A所发生的概率。

贝叶斯定理:

一般,我们认识的贝叶斯定理如下式所示。

其实,我们只要简单的对这个式子的位置改变成下面这个式子,我们会发现一个有趣的现象。

从这个式子,我们能够这样理解:
贝叶斯定理其实是在告诉我们:

也就是说,在事件B发生的条件下,A发生的概率是可以通过对事件A本身发生的概率进行调整得到。(下面我会举一个在机器学习中的具体例子说明)

当然,这个调整因子如果大于1,那么这就意味着,B事件的发生,会增强A事件发生的可能性。
调整因子如果等于1,那就意味着,B事件的发生,对A事件的发生并未产生任何的影响(其实就是说两个事件是独立的)
调整因子如果小于1,那就意味着,B事件的发生,会削弱A事件的发生的可能性。换句话说就是,B发生了,A发生的可能性就小了。

贝叶斯还可以从很多角度去理解,下面都是一些比较好的参考资料
贝叶斯定理参考1
贝叶斯定理参考2-知乎

2.补充知识2

生成模型与判别式模型的区别:
在机器学习中的任务里面,其实很多时候,我们都是在估计一个后验概率或者说估计一个函数


划分生成模型与判别式模型的依据其实就是看如何求解
通过先求联合概率密度然后求解,这是生成模型。朴素贝叶斯,隐马尔科夫模型。
而通过直接对进行建模的,这是判别式模型。例如k近邻法、感知机、决策树、逻辑回归、最大熵、SVM、AdaBoost和条件随机场。

2.朴素贝叶斯

符号说明:
代表的是特征向量。
代表所属于的类别。

——————————————————————————————————————————————————————————————
其实有了上面这些补充知识的铺垫,朴素贝叶斯的思想其实已经很清晰的。
对于生成式模型,我们需要求。根据贝叶斯定理,我们可以得到
从这条式子也可以看的出,为什么朴素贝叶斯属于生成模型。
好了。既然我们需要求。那么就需要分别求出
先来看,,这个代表的是属于某一类别的概率。这个有大数定理可以知道,此概率可以用各类别出现的频率来估计。
接着看,这个值其实不必求出,我们只需要比较分母。因为分子都是一样的。
最后就是,这个概率并不好求解。这里我引用周志华-西瓜书的话来解释一下:
对于此概率来说,由于它涉及关于所有属性的联合概率,直接根据样本出现的频率来估计将会遇到严重的困难。例如,假设样本的d个属性
都是二值的(也就是每个属性取两个值,例如性别,男或者女),则样本空间将有种可能的取值。在现实中,这个值往往远远大于训练样本的个数。总的来说就是
难以用有限的训练样本来直接估计这个概率。

如何解决?

为了解决这个问题,只能通过简化这个问题,也就是作一些假设。朴素贝叶斯中就假设了各属性之间是独立的。这个假设是非常强的,因此朴素其实就是体现在这里(对特征属性做独立性的假设)

好了,既然假设个属性之间独立,那么就有
对于每一个,由于此时只有一个属性,我们就可以用频率带代替概率。

至此,其实朴素贝叶斯的思想已经介绍完了。但是肯定会有许多的疑问。下面就给出西瓜书的一个例子帮助理解。


实战



给面数据集,现在我们需要利用朴素贝叶斯的方法进行预测,判断测1是好瓜还是坏瓜。



这个时候我们碰到一个问题,对于连续的属性要如何处理?

这里有两个方法可以考虑。
1.对连续值划分成多个区间。每个区间是取一个离散值。
2.对该连续值进行分布的假设,常用的假设有高斯分布。


例如对于,假设其分布如(7.18),下面要求两个参数。
其中,是均值,是方差。
最后我们可以得到,


最后我们可以得到连续属性的结果:


回到我们的问题

这里我们可以计算出分别是好瓜和坏瓜的概率:


最后,我们可以预测 测1 这个样例是好瓜。(好瓜概率大于怀瓜)。

至此,整个朴素贝叶斯的过程就结束了。下面还有一些小问题要讨论。

——————————————————————————————————————————————————————————————————————

关于平滑

下面有个问题,那就是假如某一类在样本中没有出现,那么此时概率就应该是0。这显然是不合理的。

例如对于好瓜中,敲声是清脆时,训练集中不存在这样的样本。


这样显然是不合理的。因此我们需要做平滑。具体来说就是


这两个式子是针对两种不同的情况的。

第一个式子:若某个类别不存在,那么分母添加的就是类别的个数。

第二个式子:若某个属性不存在,那么添加的是这个属性的个数。分子都是添加1.

这就是拉普拉斯平滑。


_________________________________________________________________________________

最后:

其实,朴素贝叶斯的假设过于强,因此,改进朴素贝叶斯的方法也是从假设出发。

例如,半朴素贝叶斯就是适当考虑一部分属性间的相互依赖信息。具体可以参考其他资料,这里不展开讨论

0 0
原创粉丝点击