EM聚类算法中的标签附加



我在一个数据集(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方法中使用labels_)。但我最好的是权重,它似乎不太正确:

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

它给了我一个错误(就像有100000行在你的数据,但你试图只追加3)。

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

谢谢!

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

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

相关内容

  • 没有找到相关文章

最新更新