在使用肘部方法确定 K-Means 的最佳聚类数时,我在网上找到了两种不同的方法。
一种方法是使用以下代码:
distortions_2.append(sum(np.min(cdist(data,
kmeanModel.cluster_centers_,
'euclidean'),
axis = 1)) / data.shape[0])

另一种是使用来自 sklearn.cluster.KMeans 的惯性_:
distortions_3.append(kmeanModel.inertia_)

当我绘制结果(使用相同的随机状态)时,两者都会给出不同的结果,但我不确定有什么区别,有人可以帮忙吗?
编辑:如果我按照下面的建议将归一化因子 / data.shape[0] 替换为平方 **2,那么我仍然没有得到与惯性图相同的结果:
distortions_2.append(sum(np.min(cdist(data,
kmeanModel.cluster_centers_,
'euclidean'),
axis = 1)) ** 2)
使用 squared 只会使情节更平滑一些,但绝对与使用 intertia_ 不同,我只是不太确定惯性_ 是如何计算的以及它的含义。

