vc1492a/PyNomaly

Anomaly detection using LoOP: Local Outlier Probabilities, a local density based outlier detection method providing an outlier score in the range of [0,1].

해결하는 문제

PyNomaly는 데이터셋 내 이상치를 탐지하기 위한 Local Outlier Probabilities (LoOP)의 파이썬 구현체입니다. 전통적인 방법이 원시 점수를 제공하는 반면, LoOP는 0과 1 사이의 정규화된 점수를 제공하여 특정 데이터 포인트가 이상치일 확률로 직접 해석할 수 있습니다.

작동 방식

이 라이브러리는 다음과 같은 다단계 파이프라인을 통해 이상치 확률을 계산합니다:

  1. 최근접 이웃 거리: 각 관측치에 대해 k개의 최근접 이웃을 찾습니다.
  2. 표준 거리: 이 거리들의 제곱평균근을 계산하여 평균 이웃 거리를 포착합니다.
  3. 확률적 거리: 표준 거리를 "범위" 매개변수(lambda)로 스케일링하여 민감도를 조절합니다.
  4. 확률적 국소 이상도 요인 (PLOF): 관측치의 확률적 거리와 그 이웃들의 평균 확률적 거리의 비율을 계산합니다.
  5. 정규화된 PLOF (nPLOF): 서로 다른 클러스터 간에 점수를 비교할 수 있도록 정규화 상수를 적용합니다.
  6. 국소 이상도 확률 (LoOP): 최종 비율에 가우시안 오차 함수를 적용하여 0과 1 사이의 확률을 생성합니다.

대상 사용자

임의의 점수 대신 해석 가능한 확률적 결과를 제공하는 밀도 기반 이상 탐지 도구가 필요한 데이터 과학자 및 실무자에게 적합합니다.

주요 특징

  • 해석 가능한 점수: 출력은 정규화된 확률 [0, 1]입니다.
  • 클러스터 인식: 선택적 클러스터 레이블을 지원하여 전체 데이터셋이 아닌 특정 그룹에 대한 이상도 확률을 계산할 수 있습니다.
  • 성능 최적화: Numba를 통합하여 JIT 컴파일과 멀티코어 병렬 처리를 지원하며, Scipy를 사용해 거리 계산을 최적화합니다.
  • 유연한 거리 메트릭: 사용자가 자체 거리 행렬과 이웃 행렬을 제공하여 유클리드 거리 외의 메트릭을 사용할 수 있습니다.
  • 스트리밍 지원: 전체 데이터셋 재적합이 비용이 큰 경우를 대비해 스트리밍 데이터용 개선된 접근 방식을 포함합니다.

관련

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