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 类似的简单接口,用于索引构建和查询。
相关
- 项目
- 项目
- 项目
- 项目
- 项目