Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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 K-D树与蛮力搜索时间的比较_Algorithm_Brute Force_Kdtree - Fatal编程技术网

Algorithm K-D树与蛮力搜索时间的比较

Algorithm K-D树与蛮力搜索时间的比较,algorithm,brute-force,kdtree,Algorithm,Brute Force,Kdtree,这是一个执行速度图,根据我写的k-d树和蛮力的维度。 指针集的数量固定为1 M 1000000,Query测量了执行1000次的速度。 k-d树的增长是巨大的,但暴力不是。 我想知道为什么会出现这些结果,以及如何改进这些结果。一些想法: 性能可能在很大程度上取决于数据的特征。例如,数据点是否均匀分布、聚集或以其他方式排列 另外,您正在执行什么样的查询?一种解释是,您使用的是一个窗口查询,它返回整个点集或点集的大部分。在这种情况下,暴力总是会更快 KD树实现中是否存在缺陷 一般来说,kD树在高维情

这是一个执行速度图,根据我写的k-d树和蛮力的维度。 指针集的数量固定为1 M 1000000,Query测量了执行1000次的速度。 k-d树的增长是巨大的,但暴力不是。 我想知道为什么会出现这些结果,以及如何改进这些结果。

一些想法:

性能可能在很大程度上取决于数据的特征。例如,数据点是否均匀分布、聚集或以其他方式排列

另外,您正在执行什么样的查询?一种解释是,您使用的是一个窗口查询,它返回整个点集或点集的大部分。在这种情况下,暴力总是会更快

KD树实现中是否存在缺陷

一般来说,kD树在高维情况下不能很好地伸缩。因此,例如在机器学习中,维数通常降低到10到20左右。然而,除非你在GPU上使用蛮力,否则KD树应该更快


如果您正在寻找具有高维插入/窗口查询功能的结构,请查看,或者后者是自发布的,目前限制为60维,但高维版本将于本周发布。对于k-最近邻搜索,请查看或。如果您使用的是Java,那么可以查看中的实现。我还实现了一个。

您是否将kd树创建时间作为基准的一部分进行测量?不,这只是我的学术好奇心。什么语言?有测试的样本代码吗?什么样的数据域和构造算法,特别是分裂启发式?