EM算法(期望最大化算法):常用的聚类算法。
对于带标签数据,我们可以用最大似然估计求的每类数据的分布参数(假设已知分布),但对于混合在一起的无标签数据(如混合高斯模型),
由于不知道每个数据的类别,也就无法使用极大似然估计的方法。
这时我们可以使用EM算法来解决这个问题,假设数据来自r个类别{z(1),z(2),z(3),......z(r)}。则
(1)将r个类别的参数设一个初始值。
(2)用这个初始值判断每一个样本的类别。
(3)将对每一类数据重新计算参数。
(4)用更新后的参数计算每个样本的归类。
(5)重复以上步骤,直到算法收敛。
最后就得到了每一类的概率分布。
可以看出EM算法与K-means有非常相似的计算步骤,只是K-means是计算样本的均值,而EM是计算样本的分布参数。
故K-means可以看成EM算法在协方差矩阵相同且为对角阵(各变量相互独立)时的特例。
另外,EM算法是一定会收敛的,实际上EM算法是一个坐标上升算法。
EM算法也是通过逐步求解(目标函数的下界)的最大值,来求目标函数的最大值的。
详情可参考,斯坦福大学机器学习公开课。