对象数组中最近的对象

时间:2016-11-16 00:57:20

标签: arrays math search machine-learning bigdata

我需要从大量对象中找到最多similar到期望的object

在这种情况下object - 只包含我们必须比较的数值的内容(例如,在xy坐标下面。

similarity我们指的是相应值之间的最小差异总和。enter image description here

我怎样才能以最快的方式做到这一点?

P.S。如果需要,可以在搜索之前对对象数组进行排序。

P.S.S。我已经在math.stackexchange.com上问了这个问题,但有些用户说我也可以在这里找到一些东西。

1 个答案:

答案 0 :(得分:0)

这称为distance function。最简单的是取相应坐标的差异;取每个差异的绝对值;为所有坐标添加这些坐标,这是两组点之间的距离。用更多的代数术语来说:

让我们调用参考数组D(对于Desired),点(Dx1,Dy1),(Dx2,Dy2),...和目标数组(Tx1,Ty1),(Tx2,Ty2) ,...在上面的例子中你有10个目标。

|Dx1 - Tx1| + |Dy1 - Ty1| +
|Dx2 - Tx2| + |Dy2 - Ty2| +
...

这是你和D之间的距离。 对所有十个目标执行此操作,并将最小距离目标报告为最佳匹配。