机器学习算法之EM算法

例子:现在随机抽取100个人的身高;其中男生身高服从N1 的正态分布,女生服从N2的正态分布;

如果我们很明确知道我抽到的是100个男生身高(或者女生),那么我可以利用MLE极大似然估计估计出其分布参数;

但是随机给一个身高,我不知道它具体是男生或者女生,所以有两个问题需要解决:

1、 样本来自于哪个分布(男生或者女生)的估计

2、 每个分布的参数估计

EM算法就是这样,假设我们想估计知道A和B两个参数,在开始状态下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

将100个样本大概分成两部分,利用最大似然估计,通过这些被大概分为男生的n个人来重新估计第一个分布的参数,女生的那个分布同样方法重新估计。这个是Maximization。当更新了这两个分布的时候,每一个属于这两个分布的概率又变了,那么我们就再需要调整E步……如此往复,直到参数基本不再发生变化为止。

K-means 与EM的联系:

首先假定每一个样本的类标签,相当于已经计算了他们参数估计了;然后调整阶段:计算每一个样本距离所有簇心的距离,判断是否更新标签;更新标签时,又将这些样本点分成几部分,重新计算新的簇心和类标签;也即完成了参数分布的估计;循环下去,直至不再更新;

EM算法 中会多一个隐含的参数(最有可能来自于哪个分布)

机器学习算法之EM算法_第1张图片
机器学习算法之EM算法_第2张图片

将M步中的式子进行化简,对 i  进行必要的合并,会得到

在M步骤中,将Q带入后,合并得到第一项是:联合分布(完全数据)的对数似然函数关于给定参数的和观察数据X下,对未知数据Z的条件概率的期望;第二项是常数;所以最大化就变成了期望的最大化;

所以在E步计算:

在M中将其最大化,获得参数;

待完善---

参考:

http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

http://blog.csdn.net/zouxy09/article/details/8537620/

http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

你可能感兴趣的:(机器学习算法之EM算法)