群集相邻点

时间:2015-06-18 10:35:42

标签: machine-learning cluster-analysis data-mining

我有一系列具有整数坐标的xy平面,每个平面都有不同的点。

对于每个平面,我想对点进行聚类,在同一个簇中放置一个远离群集中另一个点的点小于d(或精确到d)。
例如,如果群集中存在点P1(x,y),并且d = 1也

  • P2(x + 1,y)的
  • P3(X,Y + 1)
  • P4(X + 1,Y + 1)
  • P5(X-1,y)的
  • P6(X,Y-1)
  • P7(X-1,Y-1)
  • P8(X + 1,Y-1)
  • P9(X-1,Y + 1)

将属于同一群集。图形:

P9   P3   P4    
   \ |  /
P5 - P1 - P2
   / |  \
P7   P6   P8

哪种群集算法最适合此任务?

1 个答案:

答案 0 :(得分:1)

这不是一个集群问题,但你有你的邻居关系, 并且您想要计算此邻居关系的 transitive closure

这是一个更简单的问题,它有一个明显而有效的直接解决方案(breadth-first search):

虽然有未处理的点:

  1. 初始化一个新的空结果集。
  2. 工作集=选择任何一个(!)未处理点
  3. 工作集不为空时:
    1. 将工作集添加到结果集
    2. 将工作集中的所有点标记为已处理
    3. 工作集=全部''未处理''上一个工作集的邻居
  4. 将结果集作为新组返回。