白话机器学习算法(九)朴素贝叶斯

来源:互联网 发布:蓝牙网络连接有个叉 编辑:程序博客网 时间:2024/06/06 03:45

朴素贝叶斯,确实很朴素,原理也很简单,但是用途很厉害;很多涉及概率的机器学习算法都要用到这些东西:最大似然估计(MLE),贝叶斯估计(最大后验MAP),EM(也是最大似然估计,只是方法不同),最大熵;

先说点废话,再写点公式吧:

最大似然估计:我取什么样的参数,使得当前数据最有可能出现;

贝叶斯估计:我取什么样的结果使得错误估计最少   所谓后验概率最大化就是期望风险最小,比如我判断错错误得到1分,判断正确不得分,很多次判断以后,我得分最少,这就是期望风险最小;

好了,上公式:X代表数据,Y代表类别 ,X的取值为x,Y的取值为y;

做贝叶斯前对于连续的取值要离散化,比如X是连续取值的,我要分段计算概率,就是离散化;这里面还涉及一个平滑的问题,底下会说;

左边代表已知数据的情况下,这个数据属于哪个类别的概率大小

这就是贝叶斯的最原始形式,我们需要知道数据X=x的概率,类别Y=y的概率以及已知Y=y的条件下X=x概率;


这是全概率公式

代入以上式子得到



问题进一步化简,即只要求Y=y的概率,以及已知Y=y的条件下X=x概率;用一个联合概率(X,Y)表格来描述具体的细节会更清楚,公式到这里还没完,下面要说一个贝叶斯的强假设:

这个公式要求,是要求X的每个维度是统计独立的,X是一个高维向量,(这个假设要求很高,一般数据达不到,可以用先用PCA去相关)虽然这个假设很强,但是能极大的方便我们去统计,我们不需要提前定义一个概率模型,比如像GMM一样,我们先定义个模型然后去估计参数;

公式就变成了:

这就是最后的贝叶斯公式了

这个公式告诉我们,在用他之前,我们必须有


这两个通过学习集合是比较好获得的,将X的每个维度进行离散化算频率,这个过程中统计出来不能让他们为0,频率可能为0,但是不能让概率为0,这就需要引入一个拉普拉斯平滑;

关于拉普拉斯平滑,在吴军的数学之美上有讲到,在自然语言等很多方面都有应用,概率可以很小,但是不能为0,因为学习集不能代表全部,没看到不代表不存在!很简单的道理;

 

总结:朴素贝叶斯是一种生成模型,其本质是在训练集上统计每一类的概率分布,然后再反推,朴素的原因在于一个条件独立强假设,为什么要有这个假设,这个假设根本上是简化了生成模型。

 

改天写下贝叶斯网络;

最后我要推荐一本书,李航老师的《统计学习方法》,非常朴素的名字,朴素的封面,却是深入浅出的讲解,国内少有的好书!









0 0
原创粉丝点击