多次元座標の高速挿入と検索用に特別に設計されたデータ構造がありますか(実際には1次元と1M点未満のように、2次元以上または3次元以上)さらに、任意の距離メトリックについては?多次元座標のデータ構造(検索、挿入)?
私はkd-treesについてよく知っていますが、これは挿入には適していますが、わかっている限り、それらのバランスは重要ではなく、高次元での検索はあまり効率的ではありません。無秩序なマップ/ハッシュテーブルは一見すると良い解決策になりますが、私が知る限り、ハッシュや衝突の問題があります(たとえば、文字列に変換すると数値精度が切り捨てられることがあります。高価な)。多分、各次元の赤黒の木のようなものが挿入には良いでしょうし、検索にも悪くない(次元に沿って再帰的にフィルタリングする)でしょう。
私はちょうど車輪を再発明したくありません。私は、これが今日、データサイエンスの一般的な必要性であると確信しています。答えとして論文/チュートリアルへのリンクをとるのは楽しいです。理想的には、C/C++/Python/Java/Matlabに既存の実装が存在することになります。
作業している実際のデータについてもう少し詳しく説明できますか?たぶんいくつか具体的な例を提供するかもしれない。 –
@JaysonBoubin私は特定のデータについては考えていません。ポイントがいくつかの部分空間にあると想定するのに役立つ場合、または密度の高いクラスターになっていないと仮定すると、これらの仮定は動作する可能性がありますが、そうでない場合は浮動小数点のリストに過ぎません。何か覚えていましたか? – Sheljohn