この質問の問題は「任意」ですそれが何であるかわからないのであれば、それは単に点間の距離を測定する方法です(「現実の」世界では、1次元距離は2点間の差の絶対的な大きさです) )
十分なプレリム。これらの性質を持つ高速k最近傍アルゴリズムを見つけようとしています。
- 任意のメトリックで機能します
- 実装がやや簡単
- 一連の点から別の一連の点までの距離を求めるために最適化されています
ウィキペディアには、アルゴリズムとアプローチのリストが掲載されていますが、実装に関するものは何もありません。
更新:メトリックは余弦類似度であり、 ない 三角不等式を満たす。しかし、それは私が(ウィキペディアに従って) "角度の類似性"を使用することができるようです。
更新: ユースケースは自然言語処理です。 "ベクトル"は与えられた単語の "文脈"であり、バイナリのプロパティで表されます(例:文書のタイトル)。そのため、プロパティは少ししかありませんが(今のところ3を使用します)、各ベクトルは任意の大きさの次元を持ちます(タイトルの例では、データベースの各タイトルはベクトルの次元に対応します)。
更新:好奇心旺盛ですが、私はこのアルゴリズムを実装しています。
http://josquin.cs.depaul.edu/~mramezani/papers/IEEEIS.pdf
更新: このアルゴリズムでは、約100の点から約1ダースの点の最近傍点を見つける必要があります。平均的な次元はおそらく非常に大きくなるでしょう、50と言うでしょう(私はまだ知りません)そしてはい、私はライブラリではなくアルゴリズムに興味があります。そして、はい、見積もりはおそらく十分に良いです。
回答:
回答№1は1ローカリティセンシティブに行くことをお勧めしますハッシュ化(LSH)、現在は傾向があります。それは高次元データの次元を減らしますが、あなたの次元がそのアルゴリズムとうまくいくかどうかはわかりません。ウィキペディアを見る ページ 多くのための。
あなたはあなた自身の測定基準を使うことができますが、一般的にあなたは多くのアルゴリズムでそれをすることができます。お役に立てれば。
あなたはRKDの木、それらの森のために行くことができました、しかし多分これは多すぎる今です。