【问题标题】:Cluster adjacent points聚类相邻点
【发布时间】:2015-09-03 22:51:58
【问题描述】:

我有一系列具有整数坐标的 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

哪种聚类算法最适合这项任务?

【问题讨论】:

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


    【解决方案1】:

    这不是一个聚类问题,而是你有你的邻居关系, 并且你想计算这个邻居关系的 transitive closure。

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

    虽然有未处理的点:

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

    【讨论】:

    • 声称该问题有一个“明显和直接”的解决方案然后不给出该解决方案似乎有点不尊重和违背网站的精神。
    猜你喜欢
    • 2014-01-28
    • 2019-01-03
    • 2017-01-22
    • 2021-05-24
    • 2021-12-19
    • 2017-07-27
    • 1970-01-01
    • 2021-01-22
    • 2020-07-30
    相关资源
    最近更新 更多