最大期望算法(EM)
K均值算法非常简单(可参见之前发布的博文),相信读者都可以轻松地理解它。但下面将要介绍的EM算法就要困难许多了,它与极大似然估计密切相关。
1 算法原理
不妨从一个例子开始我们的讨论,假设现在有100个人的身高数据,而且这100条数据是随机抽取的。一个常识性的看法是,男性身高满足一定的分布(例如正态分布),女性身高也满足一定的分布,但这两个分布的参数不同。我们现在不仅不知道男女身高分布的参数,甚至不知道这100条数据哪些是来自男性,哪些是来自女性。这正符合聚类问题的假设,除了数据本身以外,并不知道其他任何信息。而我们的目的正是推断每个数据应该属于哪个分类。所以对于每个样本,都有两个需要被估计的项,一个就是它到底是来自男性身高的分布,还是来自女性身高的分布。另外一个就是,男女身高分布的参数各是多少。
既然我们要估计知道A和B两组参数,在开始状态下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。所以可能想到的一种方法就是考虑首先赋予A某种初值,以此得到B的估计,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。你是否隐约想到了什么?是的,这恰恰是K均值算法的本质,所以说K均值算法中其实蕴含了EM算法的本质。
EM算法,又称期望最大化(Expectation Maximization)算法。在男女身高的问题里面,可以先随便猜一下男生身高的正态分布参数:比如可以假设男生身高的均值是1.7米,方差是0.1米。当然,这仅仅是我们的一个猜测,最开始肯定不会太准确。但基于这个猜测,便可计算出
本文详细介绍了EM(期望最大化)算法的原理,以男性和女性身高分布为例,阐述了如何在未知数据分类的情况下估计分布参数。通过设定初始值,不断迭代更新参数,直至收敛。文章预告将在下篇讨论高斯混合模型(GMM)的实现,并提供R语言的数据挖掘实例。
订阅专栏 解锁全文
590

被折叠的 条评论
为什么被折叠?



