본문 바로가기

Data/Data Statistics

[Outlier Detection] Outlier 탐지를 위한 몇가지 알고리즘

반응형

BoxPlot (IQR detection)

제일 간단한 방법으로 Outlier를 정의하는것같다. BoxPlot의 Outlier정의는 다음 그림과 같다.

위아래 직선이 각각 Max Outlier, Min Outlier로 설정하고 그 이상 혹은 이하면 Outlier로 분류한다.

  • Max Outlier = Q3 + IQR * 1.5
  • Min Outlier = Q1 - IQR * 1.5

의 공식을 따른다.

여기서 각 인자에 대한 설명을 하자면

IQR  = Q3 - Q1 = 75% 사분위수 - 25% 사분위수

이다.

 

DBSCAN

Machine Learning을 이용한 Outlier 분류이다. 알고리즘 특성상 Outlier에 대한 데이터는 클러스터링 처리를 안해줘서. 클러스터링 결과가 없는건 Outlier로 판단하면된다.

단점은 연산량이 많아서 큰 데이터셋에는 매우 오랜시간이 걸린다.

scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html

 

sklearn.cluster.DBSCAN — scikit-learn 0.23.2 documentation

 

scikit-learn.org

Isolation Forest, One-Class SVM

이것도 Machine Learning을 이용한 Outlier분류. 흔히 One-Class Supervised Learning 또는 SemiSupervised Learning이라고 한다.

학습을 시킬때 한쪽 라벨링밖에 없을때 유용하다.

단점은 DBSCAN과 달리 사분위수를 사용자가 직접 정의해줘야하는 단점이있다.

둘다 python 라이브러리가 존재하니 쉽게 사용 할 수 있다.

scikit-learn.org/stable/modules/generated/sklearn.ensemble.IsolationForest.html?highlight=isolation%20forest

 

sklearn.ensemble.IsolationForest — scikit-learn 0.23.2 documentation

 

scikit-learn.org

scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html?highlight=one%20class%20svm#sklearn.svm.OneClassSVM

 

sklearn.svm.OneClassSVM — scikit-learn 0.23.2 documentation

 

scikit-learn.org

 

반응형

'Data > Data Statistics' 카테고리의 다른 글

[통계학] 가중평균(Weighted Average)  (0) 2021.06.30