一些空间填充曲线(如希尔伯特曲线)能够将 n 维空间映射到一维线,同时保留局部性。这是否意味着我们可以将高维点的数据集映射到一条线并期望保留最近邻居的顺序?
如果是这样,那不是比构建 Ball 树更有效吗?
一些空间填充曲线(如希尔伯特曲线)能够将 n 维空间映射到一维线,同时保留局部性。这是否意味着我们可以将高维点的数据集映射到一条线并期望保留最近邻居的顺序?
如果是这样,那不是比构建 Ball 树更有效吗?
保持“局部性”是空间填充曲线的理想属性,尤其是在这种情况下。但是我们不能希望真正保留所有点的最近邻居的顺序。(希尔伯特曲线的离散版本将相邻单元几乎放在曲线的两端;在维基百科的插图中,请参见顶部中心区域。)
这个想法可能仍然有用,作为一种 k 近似最近邻算法;但我不相信为数据集生成适当的(离散版本)空间填充曲线并在该曲线上查询新点实际上会比球树快得多。另一个问题是“最近”的近似值的误差取决于沿曲线的位置,因此您选择哪条曲线将对不同样本点的近似值的正确性产生重大影响。