【问题标题】:What algorithm could be used to fast clustering point in polyline shape?什么算法可以用来快速聚类折线形状的点?
【发布时间】:2014-04-08 19:51:39
【问题描述】:

假设我们有一条由这样的 2dpoints 组成的线

在给定活动点的输入的情况下,哪种算法可以最有效地计算该行中的集群?

这里的红色是所有点。 黄色 - 给定时间内的活跃点。

在这个示例中,算法应该找到两个集群(蓝色)。

【问题讨论】:

  • 去除非活跃点,使用常规聚类算法。
  • 这将是 O(n^2) 其中 n 是活动点的数量,对吧?因为我需要计算每对点的距离。

标签: algorithm cluster-analysis


【解决方案1】:

您可以执行以下操作:

  1. 按索引对点进行聚类。这可以在线性时间内完成。在此过程中保存集群的边界框
  2. 对于每对集群
    • 检查边界框是否相交或具有最大距离 t
    • 如果是,请检查两个集群中是否有两个点的最大距离为 t
    • 如果是,合并集群

t 是距离阈值。它可以是静态的,也可以基于集群(例如,到任何集群点的最近邻居的最大距离)。

该算法仍然具有二次时间复杂度,但由于预聚类和边界框测试,它应该足够快。

【讨论】:

    猜你喜欢
    • 2011-05-23
    • 2019-08-02
    • 2015-10-25
    • 2013-12-16
    • 2011-12-03
    • 2017-06-30
    • 1970-01-01
    • 2015-12-25
    • 2013-08-06
    相关资源
    最近更新 更多