いくつかの最近傍 R パッケージ (FNN、RANN、yaImpute など) がありますが、新しいクエリの最近傍を計算せずに計算できるように、NN データ構造 (カバー ツリー、KD ツリーなど) を保存できるものはないようです。ツリー全体を再構築します。Rにそのような機能はありますか?
新しいデータが到着するとインクリメンタルに更新できるデータ構造を返す関数を探して、近似 K 最近傍検索を実行します。
いくつかの最近傍 R パッケージ (FNN、RANN、yaImpute など) がありますが、新しいクエリの最近傍を計算せずに計算できるように、NN データ構造 (カバー ツリー、KD ツリーなど) を保存できるものはないようです。ツリー全体を再構築します。Rにそのような機能はありますか?
新しいデータが到着するとインクリメンタルに更新できるデータ構造を返す関数を探して、近似 K 最近傍検索を実行します。
どの NN パッケージもそれを行わないのには十分な理由があります。
その理由は、「NN データ構造」には必ずすべての入力データ ポイントが ( KD ツリーの形式で) 含まれているため、入力データに対してスペースを節約できないからです。新しい入力ごとに KD ツリーを再作成する必要がないため、時間の節約になるように見えますが、残念ながらそうではありません。
その理由は、一般に、KD ツリーを構築する時間は線形よりも悪いからです。これは、大きな入力の場合、KD ツリーを構築する前にデータを並べ替えることが理にかなっていることを意味します。これにより、KD ツリーがより高速に生成され、バランスが良くなり、検索も改善されます (対数よりも悪い) 、 一般に)。もちろん、このアプローチはモデリングと評価を高速化しますが、段階的な更新は思いとどまらせます。
一般的なKD ツリー パッケージを見つけて代わりに使用するのが最善の策だと思います。
nabor パッケージを使用すると、ツリーを構築し、その後クエリを実行できます。しかし、ツリーを段階的に更新できるとは思いません。