lmcinnes/pynndescent

A Python nearest neighbor descent for approximate nearest neighbors

解決的問題

PyNNDescent 解決了在高維空間中高效尋找資料點最近鄰的問題。它提供了一種快速的近似最近鄰(ANN)搜尋,能在避免精確搜尋計算成本的同時,維持高準確度(80%–100%)。

工作原理

該庫實作了 Nearest Neighbor Descent 算法來建構 k-鄰域圖。為了提升效能,它使用隨機投影樹進行初始化,並透過修剪圖中任意三角形的最長邊來實現圖的多樣化。它支援多種距離度量,包括 Minkowski、角度、相關性、機率度量,以及使用者自訂的度量。

適用對象

專為需要高效率 ANN 搜尋庫的開發者與資料科學家設計,可透過 pip 或 conda 輕鬆安裝,並與 Scikit-learn 無縫整合。

特色亮點

  • 在 ANN 基準測試中表現優異,實現快速近似最近鄰查詢。
  • 支援大量內建距離度量(例如:餘弦、歐幾里得、漢明、Wasserstein)。
  • 可使用自訂使用者定義的距離度量,且不犧牲效能。
  • 提供與 Scikit-learn 的 KDTrees 和 BallTrees 相似的簡單介面,用於索引建構與查詢。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案