EM 聚类算法中附加的标签

Posted

技术标签:

【中文标题】EM 聚类算法中附加的标签【英文标题】:Labels appending in EM clustering algorithm 【发布时间】:2017-03-05 00:36:38 【问题描述】:

我正在使用数据集 (x) 上的 3 个组件进行 EM 聚类,这只是具有 15 个特征的数据框。

from sklearn import mixture
import pandas as pd

x=pd.read_csv('tr.csv', sep=';')
em = mixture.GMM(n_components=3)
em.fit(x) 

然后我想在我的数据框中为集群创建一个额外的列,并附加到每个变量的每个集群的标签中(例如,像在 k-means 方法中使用标签)。但我最好的是权重,它似乎不太正确:

x['CLUSTER'] = pd.Series(em.weights_, index=x.index).astype(str)

它给了我一个错误(比如您的数据中有 100000 行,但您尝试仅追加 3 行)。

那么我怎样才能在 EM 算法中使用集群的标签,以及如何将它们插入到第一个 df 中每个变量的列中?

谢谢!

【问题讨论】:

【参考方案1】:

为了获得“标签”,您需要调用 .predict(x) 而不是 .weights.weights 是拟合分布的(众多之一!)参数,而不是逐点标签。

x['CLUSTER'] = em.predict(x)

【讨论】:

以上是关于EM 聚类算法中附加的标签的主要内容,如果未能解决你的问题,请参考以下文章

人工智能 | K-MEANS聚类算法均值偏移聚类算法DBSCAN聚类算法使用高斯混合模型(GMM)的期望最大化(EM)聚类合成聚类

高斯混合模型GMM的EM算法实现(聚类)

聚类之K均值聚类和EM算法

SIGAI机器学习第二十四集 高斯混合模型与EM算法

python大战机器学习——聚类和EM算法

机器学习入门深入浅出聚类算法!如何对王者英雄聚类分析,探索英雄之间的秘密