基于距离的聚类数据

Clustering data based on distance

让这个数组成为我的数据集:

[
{"x": 0, "y": 13},
{"x": 23, "y": 42},
{"x": 5, "y": 129},
{"x": 589, "y": 750},
{"x": 600, "y": 600},
// ...
]

我希望根据以下条件对项目进行分组(通过提供我要构建的组数作为参数):

这看起来很简单,因为我可以彻底搜索所有 项并使用距离公式 link 它们] 但这会使它变得非常低效和幼稚。

我认为这是优化问题的课堂示例,其中一些已经定义的算法可以有效解决。

攻击这种问题的"standard"是什么?

您要查找的算法可能是 k-means clustering algorithm

Here is a javascript implementation you may use. Many others 存在。