一. 相关介绍
(一) EM 算法
EM 是聚类方法的一种. EM 分为两个步骤: E 步相当于通过初始化的参数来估计隐含变量, M 步是通过隐含变量来反推优化参数. 最后通过EM 步骤的迭代得到最终的模型参数.
(二) GMM 模型
GMM 模型中文名为高斯混合模型, 是EM 算法的一种.
在python 的机器学习工具包sklearn中, 通过 from sklearn.mixture import GaussianMixture 引入GMM模型.
首先使用model = GaussianMixture(n_components=1, covariance_type=‘full’, max_iter=100) 来创建GMM 聚类, 再使用fit 函数传入样本特征矩阵, 模型会自动生成聚类器, 然后使用prediction=model.predict(data) 来对数据进行聚类, 传入你想进行聚类的数据, 可以得到聚类结果 prediction.
在创建GMM 模型时, 使用的主要参数如下:
1. n_components: 即高斯混合模型的个数, 也就是我们要聚类的个数, 默认值为 1. 如果不指定n_components, 最终的聚类结果都会为同一个值.
2. covariance_type: 代表协方差类型. 一个高斯混合模型的分布是由均值向量和协方差矩阵决定的, 所以协方差的类型也代表了不同的高斯混合模型的特征. 协方差类型有 4 种取值:
(1) covariance_type='full', 代表完全协方差, 也就是元素都不为0 , 默认值;
(2) covariance_type='tied', 代表相同的完全协方差;
(3) covar