根据距离对 N 个点进行聚类

时间:2021-02-23 17:45:11

标签: algorithm union

我在 2D 网格上获得了 n 点。我被要求对这些点进行聚类,其中对于某个常数 <=k 距离为 k 的点被分组在一起。请注意,集群内的所有点对都必须遵守距离规则。

我考虑解决这个问题的方法是,对于每个点,找到它的邻居,其中邻居由距离 k 内的点定义。我们可以假设每个点和它们的初始邻居形成一个初始簇。

然后对于每个点,我们将其初始集群与其所有相邻集群进行比较。如果所有邻居集群都与当前点集群相同,则它们被加入。如果至少有 1 个邻居簇不相同,则所有涉及的点及其邻居必须不相交。

例如,假设我们有积分

[0, -0.5]

[0, 0]

[0, 0.5]

[0, 1.5]

k = 1

对于点 [0, -0.5],我们有邻居 [0, 0][0, 0.5]

对于点 [0, 0],我们有邻居 [0, 0.5][0, -0.5]

对于点 [0, 0.5],我们有邻居 [0, 0][0, -0.5][0, 1.5]

对于点 [0, 1.5],我们有邻居 [0, 0], [0, 1.5]

所以在这种情况下,我们将有 4 个集群,由一个单独的点定义。

实现该算法的最有效方法是什么?

0 个答案:

没有答案