来自 Scikit-Learn 的 K 均值的失真函数

clw*_*wen 2 python k-means scikit-learn

用 Scikit-Learn 进行 K 表示聚类时,要得到失真函数(每个点到其中心的距离之和),一种简单的方法是获取中心 ( k_means.cluster_centers_) 并总结每个点的距离。

只是想知道是否有更快的方法?(就程序员时间而言)类似于直接函数调用之类的东西。

ogr*_*sel 7

这已经在类fitinertia_属性中预先计算KMeans

>>> from sklearn.datasets import load_iris
>>> from sklearn.cluster import KMeans
>>> iris = load_iris()
>>> km = KMeans(3).fit(iris.data)
>>> km.inertia_
78.940841426146108
Run Code Online (Sandbox Code Playgroud)

  • 也检查集群大小,`np.bincount(km.labels_)`——如果它们严重不平衡,你就有问题。(你有多少集群?) (2认同)