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

Posted

技术标签:

【中文标题】如何获得离集群中心最近的N个数据点?【英文标题】:How to get N numbers of data points which are nearest from a cluster's center? 【发布时间】:2019-05-16 09:07:31 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

当距离聚类中心的距离已知时,有什么方法可以获取最近数据点的特征? 假设我有 3 个特征,即身高、体重和颜色,我想获得离集群中心最近的数据点的这些特征。 我建议编辑问题,或者甚至更好地创建一个新问题,并解释您希望通过预期输出实现什么。【参考方案2】:

简单的四步流程:

    计算平均值 计算与平均值的距离 用argmin选择最小的k个 通过索引np.where的返回值将日落索引映射回数据集索引

【讨论】:

以上是关于如何获得离集群中心最近的N个数据点?的主要内容,如果未能解决你的问题,请参考以下文章

k 表示聚类算法

聚类算法的编程结构

聚类算法 - kmeans

随机森林_理论

如何绘制单个数据点?

算法 - k-means++