在python中执行K-means算法后得到第i个簇

时间:2014-11-17 14:58:08

标签: python algorithm scikit-learn k-means

我在矩阵中有多个点,我尝试使用K-means算法在Python中使用'scikit-learn'库进行分类。这是我到目前为止所做的:

k_means = KMeans(init='k-means++', k=5, n_init=10)
k_means.fit(X) ## X is the matrix containing the data
... # some code to plot

结果如下:

enter image description here

现在我想获得“红色”集群中的点数。我怎么能用sklearn

来做到这一点

2 个答案:

答案 0 :(得分:1)

KMeans是一个公式而不是数据库。我的意思是它没有记录每条记录的值,它记录了一个函数,它将再次给出输入的簇。要获得群集分配,可以使用名为' predict'。

的方法
kmeans.predict(value)

这将为您提供来自kmeans的群集分配。如果你遍历你的积分,你应该能够得到它们。

答案 1 :(得分:1)

我想我找到了它。很简单:对象km具有severale属性。在这些属性中,labels给出了它所属的集群的每个点:

km_labels = km.labels_
#to get all the items in the first cluster just get the indexes int km_labels with the

#value = 1

index = [x[0] for x, value in numpy.ndenumerate(km_labels) if value==1]