EM 聚类算法中附加的标签
Labels appending in EM clustering algorithm
我在数据集 (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 中每个变量的列中?
谢谢!
为了得到 "labels" 你需要调用 .predict(x)
而不是 .weights
,.weights
是拟合分布的(许多之一!)参数,而不是点-明智的标签。
x['CLUSTER'] = em.predict(x)
我在数据集 (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 中每个变量的列中?
谢谢!
为了得到 "labels" 你需要调用 .predict(x)
而不是 .weights
,.weights
是拟合分布的(许多之一!)参数,而不是点-明智的标签。
x['CLUSTER'] = em.predict(x)