kd-tree可以用点积构建吗?

时间:2013-12-11 06:50:19

标签: python algorithm data-structures nearest-neighbor kdtree

通过将超级平面递归地分割成一半来构造普通kd树。要使用查询点进行范围搜索,它只会搜索一小部分(日志)而不是全部(线性)。

我想知道可以使用点积构建kd树吗?

例如,b是3d矢量列表:

b = np.random.rand(10,3)

a = (1,1,1) is a query vector

我想找到最近的bk满足:

a * bk > a * bi, for i = 1, 2, ...k-1, k+1, 10

我不想计算所有a * bi点产品对。

如何使用b构建树,当查询到来时,我只计算一些* bi?

1 个答案:

答案 0 :(得分:3)

我认为Ram & Gray 2008正是您所寻找的。他们称他们的结构为“锥形树”。