输入一个固定的簇质心,找到其他 N 个(python)

Posted

技术标签:

【中文标题】输入一个固定的簇质心,找到其他 N 个(python)【英文标题】:Input one fixed cluster centroid, find N others (python) 【发布时间】:2017-03-25 23:26:27 【问题描述】:

我有一张以纬度、经度为单位的装运目的地表。我有一个固定的起点(也是纬度,经度)。我想使用聚类找到其他最佳原点。换句话说,我想分配一个簇质心(保持固定)并找到 1, 2, 3 。 . . N 个其他簇质心。 scikit learn 集群模块可以做到这一点吗?

【问题讨论】:

【参考方案1】:

不要为此回收集群,而是将其视为常规优化问题。您不想“发现结构”,而是要优化成本。

注意地球不是平坦的,欧几里得距离(即 k-means)是个坏主意。北纬 1 度仅在赤道与东 1 度的距离大致相同。如果您的数据是例如在纽约,你有一个不可忽略的失真,你的解决方案甚至不会是局部最优的。

如果你绝对坚持滥用 kmeans,那很容易做到。

随机选择 n-1 个中心和预定义的一个。 然后只运行 1 次 k-means 迭代。然后再次将该中心替换为所需的中心。重复下一次迭代。

【讨论】:

是的,这显然不适用于所有场景,也不是分析的唯一部分。我只是想知道是否可以将 scikit learn 用于探索目的。我无法在文档或示例中找到可以指定一个集群质心并找到其他其他质心的示例。

以上是关于输入一个固定的簇质心,找到其他 N 个(python)的主要内容,如果未能解决你的问题,请参考以下文章

Canopy算法计算聚类的簇数

K-均值聚类

聚类算法:K均值

机器学习K-Means

在python中使用k-means聚类提取质心?

机器学习经典分类算法 —— k-均值算法(附python实现代码及数据集)