lmcinnes/pynndescent

A Python nearest neighbor descent for approximate nearest neighbors

何を解決するか

PyNNDescentは、高次元空間におけるデータポイントの最近傍を効率的に見つける問題を解決します。正確な探索の計算コストを回避しつつ、高い精度(80%~100%)を維持する高速な近似最近傍(ANN)探索を提供します。

動作方法

このライブラリは、k近傍グラフの構築に「Nearest Neighbor Descent」アルゴリズムを実装しています。パフォーマンスを向上させるために、初期化にランダムプロジェクションツリーを使用し、グラフの多様性を高めるために、グラフ内の三角形の最も長い辺を削除する処理を実行しています。Minkowski、角度、相関、確率などの多様な距離メトリクスをサポートしており、カスタムユーザー定義メトリクスも利用可能です。

対象ユーザー

高速なANN探索ライブラリを必要とする開発者やデータサイエンティスト向けに設計されています。pipやcondaで簡単にインストールでき、Scikit-learnとシームレスに統合可能です。

特徴

  • ANNベンチマークで競争力のあるパフォーマンスを実現する高速な近似最近傍クエリ。
  • 多様な組み込み距離メトリクス(例:コサイン、ユークリッド、ハミング、ワッサーシュタイン)をサポート。
  • パフォーマンスを損なうことなく、カスタムユーザー定義距離メトリクスを使用可能。
  • Scikit-learnのKDTreesやBallTreesと同様のシンプルなインターフェースで、インデックスの構築とクエリが可能。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト