【sklearn第十九讲】高斯混合模型

机器学习训练营——机器学习爱好者的*交流空间(qq 群号:696721295)

一个高斯混合模型(Gaussian Mixture Models, GMM)是一个概率模型,它假设数据来*若干个未知的高斯(正态)分布组成的混合分布。
sklearn.mixture包能够学习高斯混合模型(Gaussian Mixture Models, GMM), 从GMM抽样,确定适合的成分数。Scikit-learn执行不同的类估计GMM, 对应不同的估计策略。

高斯混合

GaussianMixture对象执行EM(expectation-maximization)算法拟合GMM. GaussianMixture.fit方法从数据学习一个GMM. 给定检验数据,使用GaussianMixture.predict方法给每个样本分派它最可能属于的高斯分布。

GaussianMixture提供不同的选项约束不同估计类的协方差结构:spherical, diagonal, tied or full covariance.

【sklearn第十九讲】高斯混合模型

GaussianMixture类的利弊

GaussianMixture类的利:

  • 速度:它是学习混合模型最快的算法。

  • 中立:因为它仅仅最大化似然函数,所以不会使均值偏向0,也不会使成分数偏向形成特定的结构。

GaussianMixture类的弊:

  • 奇性:当对每个混合没有足够多的数据点时,很难估计它的协方差结构。

  • 成分数:该算法总是使用估计到的所有成分,当缺乏外部提示的情况下,需要留存一部分数据或信息论准则确定成分的数量。

成分数的选择

在一个GMM里,BIC(Bayesian Information Criteria)准则是一种有效的成分数确定方法。注意,如果使用一个Variational Bayesian Gaussian mixture, 可以避免指定GMM的成分数。

【sklearn第十九讲】高斯混合模型

EM估计算法

从无标签数据学习高斯混合模型的主要困难在于,通常不知道哪个点来自哪个成分。EM算法通过一个迭代过程很好地解决了这个问题。首先,假设随机成分,计算每个数据点来自模型的每个成分的概率。然后,调整参数,使数据的似然函数最大化。重复以上过程,直到收敛到一个局部最优。

阅读更多精彩内容,请关注微信公众号:统计学习与大数据