Albertsr/Anomaly-Detection

UnSupervised and Semi-Supervise Anomaly Detection / IsolationForest / KernelPCA Detection / ADOA / etc.

해결하는 문제

이 프로젝트는 테이블 기반 이상 탐지에 대한 수작업으로 작성된 Python 구현체 모음입니다. 전통적인 통계적 접근법부터 복잡한 커널 기반 방법에 이르기까지 데이터 내 이상치를 식별하는 데 사용된 비감독 및 부분 감독 방법들을 교육적 자료와 역사적 기록으로 제공합니다.

작동 방식

이 리포지토리는 여러 이상 탐지 전략을 구현하고 있습니다:

  • PCA 및 커널 PCA 재구성 오차: 주성분의 일부를 사용하여 데이터를 재구성함으로써 이상을 식별하는 방법입니다. 정확히 재구성할 수 없는 샘플(재구성 오차가 높은 경우)은 이상으로 표시됩니다. 선형 버전은 SVD/NumPy를 사용하며, 커널 버전은 비선형 특징 공간을 처리합니다.
  • RobustPCC: 주성분 분류기로, "주요" 성분(원래 변수의 극단적 값)과 "보조" 성분(이상한 상관 구조)의 편차를 분석하여 이상을 식별합니다.
  • 기타 비감독 방법: 마할라노비스 거리, Isolation Forest, 국소적 이상점 요인(Lof)의 구현 및 설명을 포함합니다.
  • 부분 감독/PU 학습: ADOA, KADOA(커널 PCA를 사용하는 실험적 변형), 그리고 Biased SVM과 가중 로지스틱 회귀와 같은 Positive-Unlabeled(PU) 학습 전략을 구현합니다.

대상 사용자

이 알고리즘의 수학적 기초에 관심이 있는 학생, 연구자, 개발자들을 위한 것으로, 코드 중심의 학습 방식을 선호하는 분들에게 적합합니다.

주요 특징

  • 수작업 구현: 고수준 라이브러리에만 의존하지 않고, 수작업으로 Python으로 구현에 중점을 둡니다.
  • 교육적 초점: 코드와 함께 공식 노트, 논문 해설, 시각적 설명을 결합합니다.
  • 다양한 알고리즘 세트: 선형 PCA에서 반감독 PU 학습에 이르기까지 광범위한 기법을 다룹니다.
  • 역사적 기록: 2018년 당시의 원본 구현과 실험을 보존하여 저자의 학습 과정의 진화를 보여줍니다.

관련

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