期望最大化算法(Expectation-maximization algorithm)是机器学习中一个非常重要的算法,又称作 EM 算法。EM算法是由Dempster等人1977年提出的统计模型参数估计的一种算法。它采用的迭代交替搜索方式可以简单有效的求解最大似然函数估计问题。已知的概率模型内部存在隐含的变量,导致了不能直接用极大似然法来估计参数,EM算法就是通过迭代逼近的方式用实际的值带入求解模型内部参数的算法。它在当代的工业、商业和科学研究领域发挥了重要的作用。
高斯混合模型意味着每个数据点(随机)从 C 类数据之一中抽取,概率 p_i 从第 i 类中抽取,并且每个类都分布为具有平均标准差 mu_i 和 sigma_i 的高斯分布。 给定从这种分布中提取的一组数据,我们试图估计这些未知参数。
这里用于估计的算法是 EM(期望最大化)。 简单地说,如果我们知道 N 个输入数据点中的每一个的类别,我们就可以将它们分开,并使用最大似然估计每个类别的参数。 这是 M 步。 E 步骤根据每个类的前一轮参数估计为每个数据点(软)选择(未知)类。
隐式地将数据分类(或聚类)到不同的类中,估计其参数。
当前代码仅适用于一维数据,主要用于说明混合模型和 EM 的想法,但很容易推广到更高维度。