Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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_2d_Coordinates_Similarity - Fatal编程技术网

Algorithm 多组二维坐标的适当相似性度量

Algorithm 多组二维坐标的适当相似性度量,algorithm,2d,coordinates,similarity,Algorithm,2d,Coordinates,Similarity,我有一个二维坐标集的集合,每个集合的比例为100K-500K点,我正在寻找最有效的方法来衡量一个集合与另一个集合的相似性。我知道常用的方法:余弦、Jaccard/Tanimoto等。不过,我希望对任何快速/有效的方法提出一些建议,以衡量相似性,特别是那些可以通过相似性进行聚类的方法 编辑1:图像显示我需要做什么。我需要根据它们的形状/方位等将所有的红色、蓝色和绿色分类 试试K-means算法。它动态计算每个簇的质心,计算到所有指针的距离,并将它们关联到最近的簇。尝试K-means算法。它动态计算

我有一个二维坐标集的集合,每个集合的比例为100K-500K点,我正在寻找最有效的方法来衡量一个集合与另一个集合的相似性。我知道常用的方法:余弦、Jaccard/Tanimoto等。不过,我希望对任何快速/有效的方法提出一些建议,以衡量相似性,特别是那些可以通过相似性进行聚类的方法

编辑1:图像显示我需要做什么。我需要根据它们的形状/方位等将所有的红色、蓝色和绿色分类


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

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

任何解决方案的第一步似乎都是找到每个形状的质心或其他参考点,以便在不考虑绝对位置的情况下对它们进行比较


想到的一个算法是从最接近质心的点开始,然后步行到最近的邻居。比较正在比较的集合之间这些邻居相对于质心的偏移。继续走到质心的下一个最近邻居,或之前比较的最近未比较的邻居,并跟踪聚合差异?在两个形状之间。此外,在该过程的每个步骤中,计算将使两个形状最接近对齐的旋转偏移[以及镜像是否也会影响它?]。完成后,每对集合将有三个值,包括它们的直接相似性、它们的相对旋转偏移量(仅当它们在旋转后接近匹配时才有用)以及它们在旋转后的相似性。

任何解决方案的第一步似乎都是找到质心,或每个形状的其他参考点,以便在不考虑绝对位置的情况下进行比较


想到的一个算法是从最接近质心的点开始,然后步行到最近的邻居。比较正在比较的集合之间这些邻居相对于质心的偏移。继续走到质心的下一个最近邻居,或之前比较的最近未比较的邻居,并跟踪聚合差异?在两个形状之间。此外,在该过程的每个步骤中,计算将使两个形状最接近对齐的旋转偏移[以及镜像是否也会影响它?]。完成后,每对集合将有三个值,包括它们的直接相似性、它们的相对旋转偏移量(仅当它们在旋转后是紧密匹配的情况下最有用)以及它们在旋转后的相似性。

因为聚类是基于接近形状度量的,也许您需要某种形式的连接组件标签。UNION-FIND可以为您提供快速的基本集原语

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


交叉线更难正确处理,您必须找到某种合并然后拆分的方法,或者您将合并条件设置为非常有利于共线性,这样您在交叉线上就幸运了。

因为您的聚类是基于与形状的接近度度量的,也许您需要某种形式的连接组件标签。UNION-FIND可以为您提供快速的基本集原语

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


交叉线更难把握,你要么找到某种合并然后拆分的方法,要么你将合并标准设置为非常有利于共线性,那么你在交叉线上就幸运了。

你能进一步定义相似性吗?据我所知,你们有n组m点,其中m的数量级为100k。你会用什么标准来说明任何两个集合是相似的?它们是否共享相同点的较大子集,即相同的x、y坐标,或者
两个集合中的坐标集合紧密叠加,即描述几何相似的二维对象的不同坐标。多亏了,我更关注后者,即它们描述相似的二维对象。让我解释一下我的用例,我有多个快速变化的散点图,并希望通过相似性对它们进行聚类。HTH和TIA互相关会有帮助吗?然而,我不知道如何使它的大小不变。我可以通过坐标的数量来正常化吗?各位有什么想法吗?为什么绿色和红色很相似?他们是彼此的镜像。考虑到这一点,你选择的任何算法都会增加复杂性。你能进一步定义相似性吗?据我所知,你们有n组m点,其中m的数量级为100k。你会用什么标准来说明任何两个集合是相似的?这是因为它们共享相同点的一大个子集,即相同的x、y坐标,还是两个集合中的坐标集紧密叠加,即描述几何相似的二维对象的不同坐标。多亏了,我更关注后者,即它们描述相似的二维对象。让我解释一下我的用例,我有多个快速变化的散点图,并希望通过相似性对它们进行聚类。HTH和TIA互相关会有帮助吗?然而,我不知道如何使它的大小不变。我可以通过坐标的数量来正常化吗?各位有什么想法吗?为什么绿色和红色很相似?他们是彼此的镜像。考虑到这一点,您选择的任何算法都会增加复杂性。谢谢,不幸的是,k-means似乎不太适合,因为n不是先验的。谢谢,不幸的是,k-means似乎不太适合,因为n不是先验的。这不完全是我想要的,但你的回应让我开始了一个好的方向。这不完全是我想要的,但你的回应让我开始了一个好的方向。