Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 可以使用什么算法快速聚类多段线形状中的点?_Algorithm_Cluster Analysis - Fatal编程技术网

Algorithm 可以使用什么算法快速聚类多段线形状中的点?

Algorithm 可以使用什么算法快速聚类多段线形状中的点?,algorithm,cluster-analysis,Algorithm,Cluster Analysis,假设我们有一条由像这样的两点组成的线 在给定活动点输入的情况下,哪种算法可以最有效地计算该行中的簇 红色是所有的点。 黄色-给定时间内的活动点 在此示例中,算法应找到两个簇(蓝色)。您可以执行以下操作: 按索引对点进行聚类。这可以在线性时间内完成。在此过程中保存群集的边界框 对于每对簇 检查边界框是否相交或具有最大距离t 如果是,请检查两个簇中是否有两个最大距离为t的点 如果是,则合并集群 t是距离阈值。它可以是静态的,也可以基于群集(例如,到任何群集点最近邻居的最大距离) 该算法仍然具有

假设我们有一条由像这样的两点组成的线

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

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


在此示例中,算法应找到两个簇(蓝色)。

您可以执行以下操作:

  • 按索引对点进行聚类。这可以在线性时间内完成。在此过程中保存群集的边界框
  • 对于每对簇
    • 检查边界框是否相交或具有最大距离t
    • 如果是,请检查两个簇中是否有两个最大距离为t的点
    • 如果是,则合并集群
  • t是距离阈值。它可以是静态的,也可以基于群集(例如,到任何群集点最近邻居的最大距离)


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

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