有几个最近的邻居R包(例如,FNN,RANN,yaImpute),但它们似乎都不允许保存NN数据结构(覆盖树,KD树等)。从而可以在不重建整个树的情况下计算新查询的最近邻居。在R中有这样的函数吗?
我正在寻找一个函数,它返回一个数据结构,当新数据到达时,我可以增量地更新该数据结构,以执行近似的K近邻搜索。
发布于 2013-03-19 02:53:01
没有NN包可以做到这一点,这是有充分理由的。
原因是"NN数据结构“必须包括所有输入数据点(以KD tree的形式),因此不会节省输入数据的空间。看来,不必为每个新输入重新创建KD树将节省时间,但情况并非如此。
原因是,通常情况下,构建KD-树的时间比更差。这意味着,对于大的输入,在构建KD-树之前对数据进行排序是有意义的,因为这将更快地生成KD-树,并且它将得到更好的平衡,这也将改善搜索(通常情况下,它也比对数更差)。当然,这种方法将加快建模和评估速度,但不鼓励增量更新。
我认为,如果找到一个通用的KD-tree package并使用它,你最好的选择。
发布于 2015-08-24 12:44:43
nabor包允许您构建一个树并随后对其执行查询。但我不认为它会让你增量地更新树。
https://stackoverflow.com/questions/12202263
复制相似问题