【问题标题】:Appropriate similarity metrics for multiple sets of 2D coordinates多组二维坐标的适当相似性度量
【发布时间】:2011-02-11 04:01:04
【问题描述】:

我有一组 2D 坐标集(每组有 100K-500K 点),我正在寻找最有效的方法来测量一组坐标与另一组的相似度。我知道常用方法:余弦、Jaccard/Tanimoto 等。但是我希望对任何快速/有效的方法来衡量相似度,尤其是那些可以按相似度聚类的方法提供一些建议。

编辑 1:图像显示了我需要做的事情。我需要按照形状/方向等对所有红色、蓝色和绿色进行聚类。

alt text http://img402.imageshack.us/img402/8121/curves.png

【问题讨论】:

  • 您能否进一步定义相似性?据我了解,您有 n 组 m 个点(其中 m 大约为 100k)。你会用什么标准说任何 2 组是相似的?是它们共享相同点的大子集(即相同的 x,y 坐标)还是两组中的坐标集紧密重叠(即描述几何相似的二维对象的不同坐标)。跨度>
  • 谢谢,我更多地关注后者,即它们描述了类似的 2D 对象。让我稍微解释一下我的用例,我有多个快速变化的散点图,并希望通过相似性对它们进行聚类。 HTH 和 TIA
  • 互相关有帮助吗?但是我很困惑如何使它大小不变。我可以通过坐标数进行归一化吗?有什么想法吗?
  • 为什么绿色(或红色)相似?它们是彼此的镜像。考虑到这一点会增加您选择的任何算法的复杂性。

标签: algorithm 2d coordinates similarity


【解决方案1】:

似乎任何解决方案的第一步都是找到每个形状的质心或其他参考点,以便无论绝对位置如何都可以比较它们。

想到的一种算法是从离质心最近的点开始,然后走到最近的邻居。比较正在比较的集合之间那些邻居(从质心)的偏移量。继续走到质心的下一个最近的邻居,或之前比较的最近的尚未比较的邻居,并跟踪两个形状之间的聚合差异(可能是 RMS?)。此外,在此过程的每个步骤中,计算将使两个形状最接近对齐的旋转偏移[以及镜像是否也会影响它?]。完成后,您将为每对集合获得三个值,包括它们的直接相似度、它们的相对旋转偏移量(通常仅在它们在旋转后非常接近的情况下才有用)以及它们在旋转后的相似度。

【讨论】:

  • 不完全是我想要的,但您的回复让我朝着一个好的方向开始。
【解决方案2】:

试试 K-means 算法。它动态计算每个簇的质心并计算到所有指针的距离并将它们关联到最近的簇。

【讨论】:

  • 谢谢,不幸的是,k-means 似乎不太适合,因为 n 是先验未知的。
【解决方案3】:

由于您的聚类基于形状接近度指标,因此您可能需要某种形式的连接组件标记。 UNION-FIND 可以为您提供快速的基本集合原语。

对于仅联合,从不同集合中的每个点开始,如果它们满足某种接近标准,则将它们合并,受局部共线性影响,因为这对您来说似乎很重要。然后继续合并,直到你通过一些超过阈值的条件来证明你的合并有多困难。如果您将其视为行增长(仅在其末端连接事物),那么某些数据结构会变得更简单。你所有的集群都是开放的直线和曲线吗?没有闭合曲线,比如圆形?

交叉线要正确处理比较棘手,您要么必须找到某种方式合并然后拆分,要么将合并标准设置为非常有利于共线性,然后在交叉线上运气好。

【讨论】:

    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 2016-05-29
    • 2014-09-26
    • 1970-01-01
    • 2010-12-03
    • 2021-05-22
    相关资源
    最近更新 更多