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와 유사한 간단한 인터페이스로 인덱스 생성 및 쿼리 가능.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트