我在矩阵中有多个点,我尝试使用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
结果如下:
现在我想获得“红色”集群中的点数。我怎么能用sklearn
?
答案 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]