EM算法理解——从朴素贝叶斯角度出发
来源:互联网 发布:烟台大学官网网络教学 编辑:程序博客网 时间:2024/05/22 05:28
参考资料:
http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html
其实虽然说看了一天的EM算法,但是当初是没有理解这个问题的,但是今天看完了朴素贝叶斯,突然之间就理解了这个算法。
也许是个巧合。
先来回顾一下朴素贝叶斯:
对于朴素贝叶斯来说,关键的一点就是,类别是知道的,于是可以很容易的就计算出来不同的类别对应的不同特征的分布情况,于是可以推断出来未知样本的类别。
但是和EM算法的一个差别就是,EM算法实际上是不知道类别的,类别这一维度需要自己去构建。。
于是,在朴素贝叶斯的基础上,我们需要调换两个维度。
按照我画的朴素贝叶斯的表格来看,可以看出来的是横轴是类别,这在EM算法中是不变的。朴素贝叶斯中纵轴是特征的编号,每一个元素是根据样本来进行的分布的计算。纵轴在EM算法中就变成了不同的样本,而每一个元素就是对应的一个概率的计算。这就意味着,其实原本表格中包含的三个维度——类别、特征、样本只不过是从不同的角度去观察,然后压缩成了二维。
压缩了样本这一维度,剩下的特征、类别构成了朴素贝叶斯。
压缩了特征这一维度,剩下的样本、类别构成了EM算法。
所以其实我认为二者还是有内在联系的。
EM算法矩阵:
当然,计算prob或者说计算一个概率通常都是有自己的计算方法的,这个可以是自己定义的函数,毕竟样本的特征可以随便表示,而矩阵中需要表示的只是最后的计算结果。换句话说prob(xi|yj) = f(xi,yj)这个f函数是可以任意表示的。
EM算法其实就是一个迭代的过程。(请先阅读reference[1])。
目标——theta,也就是对于不同的样本进行自动分类的一个结果,可以看作是这个矩阵。
隐变量——类别,或者说是聚类中心,其实我认为都是没什么问题的,就是为了增强区分性的一个中心点y。
E步骤是计算最大期望,也就是在当前的theta分布的情况下,什么样的一个y的分布能够最好的拟合样本,根据Jensen不等式(看reference[1]),可以看出来,如果是单个元素,只要y和xi的分布相同即可,但是从整体的角度考虑,还是需要和整体的样本分布相同。
M步骤就是重新计算矩阵的分布。
那么为什么说E步骤是建立下界呢?因为当y的分布基本和数据的整体分布相同的时候,好了,我的最大拟合的目标已经达成。
为什么说M步骤是优化下界呢?如果theta分布不变,好,y就完成了。但是因为上一个计算的y是在上一个theta下效果最好。但是由于整体的当前的最好分布变了,使得元素的分布也会相应改变。
Reference:
http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html
- EM算法理解——从朴素贝叶斯角度出发
- EM算法(期望最大化)——从EM算法角度理解K-Means与GMM的区别
- 浅谈EM算法的两个理解角度
- EM算法的两种理解角度
- 朴素贝叶斯算法理解
- 一切从学生角度出发
- 朴素贝叶斯算法matlab实现以及EM算法
- 朴素贝叶斯算法matlab实现以及EM算法
- 谈谈我对3G的理解-从国内三大运营商角度出发(1)
- 谈谈我对3G的理解-从国内三大运营商角度出发(2)
- 从C语言的角度出发理解C++的封装继承和多态
- 从DFA角度理解KMP算法
- 网站优化需要从用户角度出发
- 一切从客户的角度出发?
- 漫谈机器学习经典算法—理解EM算法
- 关于NB算法的一些学习笔记——朴素贝叶斯算法理解
- 分类算法——朴素贝叶斯算法
- 朴素贝叶斯算法的简单理解
- 11g RAC 删除节点详细记录
- STM32 大小端序 与 堆栈及其增长方向分析
- char*和char[]的一个区别
- 第五条
- JAVA后台拼接json map类型,MAP类型中的VALUE对应List
- EM算法理解——从朴素贝叶斯角度出发
- Android文件操作
- 使用Pyjnius 从python调用自定义Java方法
- 网络原理笔记之——Http协议
- github 开源库汇总
- Eclipse关联android源码
- Hadoop2.6.0 Snappy 压缩安装与配置
- 高并发 php uniqid 不重复唯一标识符生成方案
- Fragment中adapter刷新无效的解决办法