如何获得距离簇中心最近的 N 个数据点?

How to get N numbers of data points which are nearest from a cluster's center?

我想在部署 K-means 算法后,在每个集群中获得离中心最近的 N 个数据点(基于欧氏距离)。我能够使用

获取数据点的索引
np.where(km.labels_ == 0)

一个简单的四步过程:

  1. 计算平均值
  2. 计算与平均值的距离
  3. Select和argmin
  4. 最小的k
  5. 通过索引到 np.where
  6. 的 return 值,将日落索引映射回数据集索引

您可以使用 kmeans class 的 transform 方法计算每个数据点到每个聚类的距离。

然后假设您想要第 0 个索引 cluster 的顶部 N 点,那么您可以这样做:

cluster = 0
N = 2
np.sort(kmeans.transform(X)[:,cluster])[:N]