在R中保存并递增更新最近邻模型

Inn*_*nuo 39 r

有几个最近邻R包(例如,FNN,RANN,yaImpute)但它们似乎都不允许保存NN数据结构(覆盖树,KD树等),以便可以在没有新查询的情况下计算新查询的最近邻居重建整棵树.R中有这样的功能吗?

我正在寻找一个函数,它返回一个数据结构,我可以在新数据到达时逐步更新以执行近似K最近邻搜索.

sds*_*sds 2

没有 NN 包能够做到这一点是有充分理由的。

原因是“NN数据结构”必然包括所有输入数据点(以KD树的形式),因此针对输入数据没有空间节省。看来不必为每个新输入重新创建 KD 树可以节省时间,但可惜事实并非如此。

原因是构建 KD 树的时间通常比线性树要差。这意味着,对于大输入,在构建 KD 树之前对数据进行排序是有意义的,因为这会更快地生成 KD 树并且会更好地平衡,这也会改善搜索(它也比对数树更糟糕) , 一般来说)。当然,这种方法会加快建模和评估速度,但会阻碍增量更新。

我认为,最好的选择是找到一个通用的KD-tree 包并使用它。