我在5维空间中有大约10K点。我们可以假设点在空间(0,0,0,0,0)和(100,100,100,100,100,100)中随机分布。显然,整个数据集可以很容易地驻留在内存中。
我想知道k最近邻的哪种算法运行得更快,kd还是RTree。
虽然我对这两种算法有很高的了解,但我不确定哪种算法运行得更快,以及为什么。我愿意探索其他算法,如果有的话,这些算法可以运行得很快。如果可能的话,请指定为什么算法运行得更快。
发布于 2013-12-16 18:40:54
这取决于各种参数。最重要的是你实现这些算法的能力。
我个人发现批量加载的R*-树对于大数据来说更快,可能是因为它们有一个更好的扇出。批量加载的R-树是一个更公平的比较,因为kd-树通常是批量加载的(实际上,它们根本不支持增量操作)。
对于微小的数据,kd可能更快,而且实现起来要简单得多。
有关其他事项,请参阅前面的问题/答案:
https://stackoverflow.com/questions/20605250
复制相似问题