例えば、sklearn
KDTreeでこの類似性メトリックを使用することはできませんが、私は測定ワードの類似性を使用しているので必要です。このケースでは、高速で堅牢なカスタマイズアルゴリズムとは何ですか?私はLocal Sensitivity Hashing
について知っていますが、調整して&がparamsを見つけるために多くのテストを行う必要があります。コサインの類似性を持つKDTreeを使用できますか?
答えて
コサインの類似性で得られるランキングは、すべてのデータ点を最初に正規化したときのユークリッド距離の順位と同じです。だからKDTreesを持つk最近傍にKDツリーを使うことができますが、コサインの類似性を再計算する必要があります。
コサイン類似度は、通常提示される距離メトリックではありませんが、1に変換できます。完了した場合、Ball Treeのような他の構造を使用して、コサインの類似性を使ってnnを高速化することができます。私はあなたがJavaの実装に興味があったなら、JSATライブラリでこれを実装しました。
table at the end of this pageによれば、コサインサポートはk-d-treeが可能でなければなりません。ELKIはR-treeで余弦をサポートし、k-d-treeの境界矩形も導出できます。 k-d-treeはそのテーブルの少なくとも5つのメトリックをサポートしています。だから私はなぜそれがうまくいかないのか分からない。 sklearnでのインデックス作成サポートは、残念ながら非常に完全ではありません(改善されていますが)。それを参考にしないでください。
kdツリーは、理論的コサインバウンディングボックスにバウンディングボックスと最小角度で作業
- によってコサイン変換をサポートすることができるが(すなわち、であるように見えます
kd-treeは、高次元のデータではうまく動作しません。コサインは、非常に高次元のデータでよく使われます。 k-d-treeは常に1つの次元のみを調べます。すべてのd次元を一度使用するには、O(2^d)のデータポイントが必要です。高いdの場合、すべての属性が使用される方法はありません。 バウンディングボックスを使用しているため、Rツリーの方がやや優れています。これらはすべてのディメンションの分割ごとに縮小されるので、プルーニングは改善されます。しかし、これはまた、そのようなデータのために多くのメモリを必要とすることを意味し、木構造は同じ問題を抱えている可能性があります。 本質的に、高次元のデータにはどちらも使用しないでください。
しかし、Cosineが魔法のように結果を向上させるとは思わない、特にhigh-dデータの場合。それは非常に過大評価されています。上記の変換が示すように、はがユークリッド上のコサインの系統的な利点ではありません。コサインはユークリッドの特別なケースです。
sparseデータの場合、反転リスト(Lucene、Xapian、Solr、...)は余弦のインデックス方法です。
- 1. コサイン類似性によるクラスタリング
- 2. skine.manifoldのコサイン類似度TSNE
- 3. 調整済みコサイン類似度と正規コサイン類似度の選択
- 4. コサインの類似性のためのカスタム損失関数
- 5. spark mlコサイン類似度:1からnの類似度スコアを得る方法
- 6. コサイン類似度は、私はファイルを持っている
- 7. マハウトのコサイン類似度の計算
- 8. 行列の各行のコサイン類似度
- 9. スパースベクトルの加重コサイン類似度
- 10. word2vecのコサイン類似度1以上
- 11. 2つの行列を使ってコサイン類似度を計算する方法
- 12. 大きなスパース行列でのコサイン類似度numpy with
- 13. scikit-learnを使用してコサインの類似性を効率的に計算する
- 14. パンダのコラムのコサイン類似度を計算する
- 15. TF-IDF(コサイン類似度)をページランクと組み合わせるか?
- 16. テキスト類似性のためのelasticsearchを持つWord2vec
- 17. 画像に適用されたコサイン類似度尺度
- 18. JavaScript:類似した属性を持つオブジェクトのグループ化
- 19. Solr/Luceneでコサインの類似性をモデル化することは可能ですか?
- 20. コサイン類似度の負の値を扱う方法
- 21. コサイン類似度同じサイズを必要とするベクトル
- 22. 類似の属性名を持つXSDからJAXBクラスを生成する
- 23. 類似性メトリック
- 24. Luceneスコアリング:スコアと同じコサイン類似度を得る
- 25. 類似性のマッチングアルゴリズム
- 26. 既知のアイテムの類似性と豊富さを持つ類似度の測定
- 27. コサイン類似度のためのパンダとSQL Serverの列制限
- 28. コサインの類似性は「ナノ」値をもたらす。。これは、この質問の反対側です。pt.II
- 29. Pythonのコサイン類似度を使用してクエリ文書と比較して最も類似した文書を返します
- 30. Perlにおけるコサイン類似度の計算
"standart"距離メトリックと欠点を確認しましたか?私は、何らかの理由で最も人気のあるMLライブラリがKDツリーのコサイン類似度またはCOS距離を使用しないことを少し恐れています。 – Brans
KDツリーはコサイン類似度を自然にサポートしません。 KDツリーは、有効な距離メトリックにのみ適用されます。一般的に距離メトリックでは機能しません。 BallやVPツリーなどの他の手法では、有効な距離メトリックを使用できます。 –