Python - 肘图问题

时间:2018-02-28 14:31:32

标签: python k-means

我试图绘制一张弯头图表,以便为此获得理想数量的聚类:

db.collection('coll').doc('doc')

当我运行此代码时,我收到以下错误:

data = dataset[['A','B','C','D','E','F','G','H']]
distortions = []
K = range(1, 10)
for k in K:
    kmeanModel = KMeans(n_clusters = k).fit(data)
    kmeanModel.fit(data)
    distortions.append(sum(np.min(cdist(data, kmeanModel.cluster_centers_, 'euclidean'), axis=1)) / data.shape[0])

plt.plot(data, distortions, 'bx-')
plt.xlabel('k')
plt.ylabel('Disortotion')
plt.title('Elbow')
plt.show()

这个错误是什么意思?我该如何解决?

谢谢!

1 个答案:

答案 0 :(得分:0)

plt.plot(data, distortions, 'bx-')中,您指定xdata,这是k-means的原始数据框。它应该是集群的数量:

plt.plot(K, distortions, 'bx-')
plt.xlabel('k')
plt.ylabel('Disortotion')
plt.title('Elbow')
plt.show()