데이터 이상치(Outlier)의 기준은 무엇일까?

Ganni
6 min readMar 3, 2021

--

Outlier detection 방법에 대해 알아보자

https://sixsigmadsi.com/standard-deviation-measure-of-dispersion/

이상치(Outlier)란, 보통 관측된 데이터의 범위에서 많이 벗어난 아주 작은 값이나 큰 값을 말한다. 어떤 의사결정을 하는데 필요한 데이터를 분석 혹은 모델링할 경우, 이러한 이상치가 의사결정에 큰 영향을 미칠 수 있기 때문에 데이터 전처리 과정에서의 적절한 이상치 처리는 필수적이다.

하지만 앞서 말한 ‘데이터의 범위에서 많이 벗어난’ 혹은 ‘아주 작은/큰’이라는 것은 정확히 어떤 기준으로 판단할 수 있을까?

데이터에서 이상치를 탐지하기 위한 몇 가지 방법을 알아보고 잘 활용해보자.

Standard Deviation

데이터의 분포가 정규 분포를 이룰 때, 데이터의 표준 편차를 이용해 이상치를 탐지하는 방법이다.

https://www.mathsisfun.com/data/standard-normal-distribution.html

위 그림은 순서대로 1 표준 편차, 2 표준 편차, 3 표준 편차를 사용했을 때 파란색 범위를 벗어나는 데이터는 이상치로 간주될 수 있음을 의미한다.

또한 여기서 말하는 표준 편차는 아래 용어들로 대체할 수 있다.

  • Standard Score
  • Sigma
  • Z-score
Z-score 공식

데이터의 Z-score 는 해당 데이터가 평균으로부터 얼마의 표준 편차만큼 벗어나 있는지를 의미한다. 예를 들어 3 표준 편차 만큼을 벗어나는 데이터를 이상치로 처리하는 것은 Z-score 가 3 보다 크고 -3 보다 작은 데이터를 이상치로 처리하는 것과 같은 작업이다.

IQR (Interquartile Range) with Box plots

데이터의 분포가 정규 분포를 이루지 않거나 한 쪽으로 skewed 한 경우, 데이터의 IQR 값을 이용해 이상치를 탐지하는 방법이다.

https://www.simplypsychology.org/boxplots.html

박스 플롯은 위와 같이 데이터의 최소값, 최대값, 중간값, 첫번째 사분위(Q1) 및 세번째 사분위(Q3) 값에 대한 정보를 제공한다.

여기서 사분위란, 말 그대로 데이터를 4등분 했을 때의 범위로 Q1 아래로는 최소값을 포함한 하위 25% 범위를, Q3 위로는 최대값을 포함한 상위 25% 범위를 포함한다. 이때 IQR 값은 Q3 에서 Q1 을 뺀 값이다.

출처 : Wikipedia

(Q1 – 1.5 * IQR) 보다 작거나 (Q3 + 1.5 * IQR) 보다 큰 데이터는 이상치로 처리한다. 1.5 보다 큰 3 혹은 그 이상의 값을 곱하기도 하며 값이 클수록 더욱 최극단의 이상치를 처리함을 알 수 있다.

Isolation Forest

결정 트리 계열의 비지도 학습 알고리즘으로 High dimensional 데이터셋에서 이상치를 탐지할 때 효과적인 방법이다.

https://pubs.rsc.org/en/content/articlelanding/2016/ay/c6ay01574c#!divAbstract

데이터셋을 결정 트리 형태로 표현해 정상 데이터를 분리하기 위해서는 트리의 깊이가 깊어지고 반대로 이상치는 트리의 상단에서 분리할 수 있다는 개념을 이용한다. 즉, 데이터에서 이상치를 분리하는 것이 더 쉽다는 것이다.

이상치가 아닌 데이터 (출처 : Wikipedia)
이상치 데이터 (출처 : Wikipedia)

따라서 특정 데이터를 데이터셋에서 분리하기 위해서는 트리에서 몇 번을 분리해야 하는지, 다시 말하면 데이터까지의 경로 길이를 기준으로 데이터가 이상치인지 아닌지를 판단한다. 이때 이상치는 다른 관측치에 비해 짧은 경로 길이를 가진 데이터일 것이다.

이러한 개념을 기반으로 각 데이터에 대해 이상치 점수를 부여할 수 있으며 공식은 다음과 같다.

Outlier score 공식

h(x) 는 앞서 말한 경로 길이로 점수는 0 에서 1 사이로 산출된다. 결과가 1 에 가까울수록 이상치로 간주된다.

DBScan (Density Based Spatial Clustering of Applications with Noise)

밀도 기반의 클러스터링 알고리즘으로 어떠한 클러스터에도 포함되지 않는 데이터를 이상치로 탐지하는 방법이다.

DBScan 알고리즘은 2가지의 하이퍼파라미터 eps 그리고 MinPts 를 요구한다.

  • eps : 두 데이터 사이의 거리가 eps 보다 작거나 같을 때 이들은 같은 클러스터 내에 있는 것으로 간주한다.
  • MinPts : 한 클러스터 내에 존재해야 하는 데이터의 최소 개수. 최소 3 이상의 값을 가져야 하며 보통은 데이터의 차원에 1을 더한 값 이상으로 설정한다.
https://www.geeksforgeeks.org/dbscan-clustering-in-ml-density-based-clustering/

이때 eps 거리 내에 MinPts 이상의 데이터를 이웃하는 데이터는 Core Point 가 되고 반대로 eps 거리 내에 MinPts 미만의 데이터를 이웃하는 데이터는 Border Point 가 된다. 그리고 이들을 제외한 데이터가 바로 이상치가 된다.

DBScan 알고리즘은 K-means 알고리즘과 달리 클러스터의 개수를 미리 정하지 않아도 되고 클러스터가 선형적으로 나뉘지 않아 다양한 모양을 가질 수 있다.

https://en.wikipedia.org/wiki/DBSCAN

다만 데이터의 차원이 높을수록 정확하지 않을 수 있고, eps 하이퍼파라미터를 적절한 값으로 설정하는 것이 어렵다는 단점이 있다.

--

--