8得票1回答
如何使用kd树来确定字符串相似度?

我正在尝试利用k最近邻算法解决字符串相似性问题,即给定一个字符串和一个知识库,我想输出与我的给定字符串相似的k个字符串。是否有任何教程可以解释如何利用kd树来高效地进行这种字符串的k最近邻查找?字符串长度不会超过20个字符。

30得票1回答
四叉树和kd树的区别

四叉树和kd-tree之间的主要区别是什么?我知道它们都可以在多个维度中分割点,但我不明白为什么会选择其中之一。我需要一种结构,可以让我计算在给定区域内有多少个点(2D点)。基本上,我正在尝试检测点的聚集。

14得票4回答
kd树与八叉树在三维半径搜索中的比较

我试图确定哪种结构更适合进行多个点的半径搜索,kd-tree还是octree?这已经在这个问题中提到过,但没有答案。在我的看法中,由于octree对于叶子节点有固定的大小,因此可以计算出需要访问的分支,而对于kd-tree,则需要迭代地访问分支,直到覆盖半径。

35得票2回答
Ana-/Catamorphisms是否只是更慢的方式?

在写完这篇文章后,我决定付诸行动,将我的一个旧项目转换为使用recursion-schemes。 所涉及的数据结构是懒惰的kdtree。请查看具有显式递归和隐式递归的实现。 这主要是一种沿着以下方向进行的简单转换:data KDTree v a = Node a (Node v a) (N...

8得票1回答
带元数据的Scipy Kdtree是什么意思?

我正在寻找一种方法来构建几个kd树,以便快速查询一些n维数据。然而,我在使用scipy KD树算法时遇到了一些问题。 我的数据由id -> {data: somedata, coordinate: x, y}组成。 我希望能够基于坐标和k个最近邻居的id进行查询,并获取固定半径邻居的...

55得票11回答
Java中的KDTree实现

我正在寻找Java中的KDTree实现。 我已经进行了谷歌搜索,结果似乎相当杂乱。虽然有许多结果,但它们大多只是一次性的小实现,我希望能找到一些更具“生产价值”的东西。像Apache集合或.NET的优秀C5集合库之类的东西。这样我就可以看到公共错误跟踪器,并检查上次SVN提交发生的时间。在理想...

16得票1回答
使用SciKit-learn和SciPy构建/搜索K-最近邻居的速度

我有一组大量的二维点,并希望能够快速查询2D空间中任何点的k个最近邻居。由于是低维度的,使用KD-Tree似乎是一个不错的选择。我的初始数据集很少更新,因此对于查询点的时间比建立时间更重要。但是,每次运行程序时,我都需要重新加载对象,因此我还需要一种可以快速保存和重新加载的结构。 两个可用的...

9得票2回答
k-d树对于kNN搜索是否有效率?k个最近邻搜索

我需要在kd树中实现10维数据的k近邻搜索。 但问题是,我的算法对于k=1非常快,但是对于k>1(k=2,5,10,20,100)则慢了多达2000倍。 这种情况对于kd树来说正常吗?还是我做错了什么?

10得票4回答
如何在Ruby中找到二进制字符串的最近对(Hamming距离),而不会出现O ^ 2问题?

我拥有一个MongoDB,其中包含约一百万个文档。这些文档都有一个字符串,表示256位的二进制数,如: 0110101010101010110101010101 理想情况下,我想查询近似的二进制匹配。这意味着,如果两个文档具有以下数字,则是Hamming距离。 目前Mongo不支持此功能...

12得票4回答
在KD树中寻找所有节点的K近邻的高效方法

我目前正在尝试找到一个平衡的KD树的所有节点的K个最近邻居(其中K=2)。我的实现是代码维基百科文章的变体,可以相当快地找到任何节点的KNN,时间复杂度为O(log N)。问题在于我需要找到每个节点的KNN,如果我迭代每个节点并执行搜索,则时间复杂度达到O(N log N)左右。是否有更有效的...