28丨EM聚类:用EM算法对王者荣耀英雄进行划分

EM 算法是一种求解最大似然估计的方法,通过观测样本,来找出样本的模型参数。最大似然估计是一种通过已知结果,估计参数的方法。

EM 聚类的工作原理

E 步和 M 步:E 步相当于通过初始化的参数来估计隐含变量,M 步是通过隐含变量来反推优化参数。最后通过 EM 步骤的迭代得到最终的模型参数。

EM 算法相当于一个框架,可以采用不同的模型来进行聚类,比如 GMM(高斯混合模型),或者 HMM(隐马尔科夫模型)来进行聚类。HMM 在自然语言处理和语音识别领域中有广泛的应用。在 EM 这个框架中,E 步骤相当于是通过初始化的参数来估计隐含变量。M 步骤就是通过隐含变量反推来优化参数。最后通过 EM 步骤的迭代得到模型参数。

EM和K-Means区别

相同点

1.EM,KMEANS,都是随机生成预期值,然后经过反复调整,获得最佳结果

2.聚类个数清晰

不同点

1.EM是计算概率,KMeans是计算距离。

计算概率,概率只要不为0,都有可能即样本是每一个类别都有可能

计算距离,只有近的的票高,才有可能,即样本只能属于一个类别

创建 GMM 聚类

from sklearn.mixture import GaussianMixture

gmm = GaussianMixture(n_components=1, covariance_type=‘full’, max_iter=100) 

主要的构造参数,讲解下:

1.n_components:即高斯混合模型的个数,也就是我们要聚类的个数,默认值为 1。如果你不指定 n_components,最终的聚类结果都会为同一个值。

2.covariance_type:代表协方差类型。一个高斯混合模型的分布是由均值向量和协方差矩阵决定的,所以协方差的类型也代表了不同的高斯混合模型的特征。协方差类型有 4 种取值:

covariance_type=full,代表完全协方差,也就是元素都不为 0;

covariance_type=tied,代表相同的完全协方差;

covariance_type=diag,代表对角协方差,也就是对角不为 0,其余为 0;

covariance_type=spherical,代表球面协方差,非对角为 0,对角完全相同,呈现球面的特性。

3.max_iter:代表最大迭代次数,EM 算法是由 E 步和 M 步迭代求得最终的模型参数,这里可以指定最大迭代次数,默认值为 100。

用EM算法对王者荣耀英雄进行划分

https://github.com/cystanford/EM_data

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 04 EM算法 - EM算法收敛证明 GMM(Gaussian Mixture Model, 高斯混合模型)是指该...
    白尔摩斯阅读 6,330评论 2 23
  • 主要内容 多维高斯混合分布聚类 EM算法的聚类效果或许比K均值聚类好一些。 如图,对于二维数据形成概率密度曲线,或...
    blade_he阅读 4,388评论 0 55
  • 昨日,弟弟打电话跟我说,他在学校被人殴打。身在外,心揪紧。小弟平日忠厚老实,因属父亲老年得子,所以溺爱得很,...
    拾荒留遗阅读 212评论 0 3
  • 我爱所有 玫瑰花的刺 刺穿夜莺的胸膛 刺瞎我的眼睛 我不怕 不怕失明 因为爱是这样固若金汤的信任 爱让黑暗亦陷入光...
    鹿右右阅读 834评论 13 29
  • 不知是累了还是岁月老了为什么会在脑海里的一条街驻足这不止的静默慢没灵魂时刻落水的眼神散落在了一所宽大的住处当你已不...
    语蔓阅读 264评论 1 7