假设我正在检查多达 10 个集群,我通常使用 scipy 生成“肘部”图,如下所示:
from scipy import cluster
cluster_array = [cluster.vq.kmeans(my_matrix, i) for i in range(1,10)]
pyplot.plot([var for (cent,var) in cluster_array])
pyplot.show()
从那以后,我开始有动力使用 sklearn 进行聚类,但是我不确定如何像在 scipy 案例中那样创建绘图所需的数组。我最好的猜测是:
from sklearn.cluster import KMeans
km = [KMeans(n_clusters=i) for i range(1,10)]
cluster_array = [km[i].fit(my_matrix)]
不幸的是,这导致了无效的命令错误。解决这个问题的最佳方法是什么?
谢谢
原文由 Arash Howaida 发布,翻译遵循 CC BY-SA 4.0 许可协议
您在代码中遇到了一些语法问题。现在应该修复它们:
fit
方法只返回一个self
对象。在原始代码的这一行cluster_array
最终将具有与km
相同的内容。您可以使用
score
方法来估计聚类的拟合程度。要查看每个集群的分数,只需运行plot(Ks, score)
。