调整最近邻搜索功能,通过Groovy中的kD-tree提供K最近邻居?

时间:2011-12-01 18:11:30

标签: groovy nearest-neighbor kdtree

我已成功编写了一个函数,该函数遍历一个Kd-Tree,用于最近的单个邻居。

但是,我正在尝试切换此函数,以便找到K-最近邻居而不是单个邻居。事实证明,这比我原先想象的要艰巨得多,而且我发现自己需要一些帮助......

关于kD-trees的维基百科文章说:

  

通过简单的修改,可以通过多种方式扩展算法。它可以通过保持k个当前波形而不是仅仅一个来为一个点提供k-最近邻。只有当分支不能比任何k当前的最佳点更接近时才会消除分支。

...但它没有说明如何获得初始当前最佳状态。找到第一个“最好的”很简单,但是我不知道怎么去寻找剩下的k-current bests而不去除之前的最好并且再次搜索...这基本上就没有找到快速算法因为我必须做k(在我的情况下,17次)。

如果我有17个初始“bests”的填充列表,我相信我的算法会找到正确的点。

如果这很模糊,我道歉。如果需要任何代码示例,我很乐意提供它们。虽然如果对这个问题有一个简单的解释,可能没有必要发布它,所以我最初不会。

提前致谢!

0 个答案:

没有答案