데이터 분석을 진행하다보면 전처리 과정이 제일 중요하다는 것을 깨닫게 될 때가 많다. 다양한 데이터를 접하면서 가장 고민이 되는 부분이 해당 데이터의 '이상치'와 '결측치'를 어떻게 처리하는지이기 때문에 이제부터 다양한 처리 방법에 대해 알아보자!
이상치(Outlier) : 보통 관측된 데이터의 범위에서 많이 벗어난 아주 작은 값이나 큰 값을 말한다.
결측치(Missing Value) : 데이터 수집 과정에서 측정되지 않거나 누락된 데이터를 말한다.
이상치와 결측치는 모두 데이터 전처리 과정에서 처리를 진행해주지 않으면
데이터 분석에 큰 영향을 끼치게 되기 때문에 알맞은 처리를 진행해주어야 한다!
데이터의 분포가 정규 분포를 이룰 때, 데이터의 표준 편차를 이용해 이상치를 탐지하는 방법이다.
💡 68-95-99.7 규칙 (3시그마 규칙)
1표준편차 : 약 68%의 값들이 평균에서 양쪽으로 1 표준편차 범위(μ±σ)에 존재한다.
2표준편차: 약 95%의 값들이 평균에서 양쪽으로 2 표준편차 범위(μ±2σ)에 존재한다.
3표준편차: 거의 모든 값들(실제로는 99.7%)이 평균에서 양쪽으로 3표준편차 범위(μ±3σ)에 존재한다.
즉, 그래프의 정해진 표준편차마다 각각 파란 부분을 넘어서는 부분에 해당하는 값들을 이상치로 보는 방법이다.
💡 Z-score 공식
데이터의 분포가 정규 분포를 이루지 않거나 한 쪽으로 skewed 한 경우, 데이터의 IQR 값을 이용해 이상치를 탐지하는 방법이다.
최솟값 : 제 1사분위(Q1)에서 1.5 IQR을 뺀 위치이다.
제 1사분위(Q1) : 25%의 위치를 의미한다.
제 2사분위(Q2) : 50%의 위치로 중앙값(median)을 의미한다.
제 3사분위(Q3) : 75%의 위치를 의미한다.
최댓값 : 제 3사분위에서 1.5 IQR을 더한 위치이다.
IQR : (제 3사분위 값) - (제 1사분위 값)
즉, (Q1 – 1.5 IQR) 보다 작거나 (Q3 + 1.5 IQR) 보다 큰 데이터는 이상치로 처리하며, 1.5 보다 큰 3 혹은 그 이상의 값을 곱하기도 하며 값이 클수록 더욱 최극단의 이상치를 처리함을 알 수 있다.
결정 트리 계열의 비지도 학습 알고리즘으로 High dimensional 데이터셋에서 이상치를 탐지할 때 효과적인 방법이다.
* High dimensional 데이터셋: 변수(혹은 피처)의 수가 매우 큰 데이터
<이상치가 아닌 데이터>
<이상치 데이터>
이상치 판단 방법
특정 데이터를 데이터셋에서 분리하기 위해선 트리에서 몇 번을 분리해야 하는지 (데이터까지의 경로 길이)를 기준으로 데이터가 이상치인지 아닌지를 판단한다.
이상치는 다른 관측치에 비해 짧은 경로 길이를 가진 데이터일 것이다.
이러한 개념을 기반으로 각 데이터에 대해 이상치 점수를 부여할 수 있으며 공식은 다음과 같다.
h(x)는 경로 길이로 점수는 0 에서 1 사이로 산출된다. 결과가 1 에 가까울수록 이상치로 간주된다.
밀도 기반의 클러스터링 알고리즘으로 어떠한 클러스터에도 포함되지 않는 데이터를 이상치로 탐지하는 방법이다.
💡 DBScan 알고리즘의 2가지의 하이퍼파라미터
eps 거리 내에 MinPts 이상의 데이터를 이웃하는 데이터는 Core Point 가 되고 반대로 eps 거리 내에 MinPts 미만의 데이터를 이웃하는 데이터는 Border Point 가 된다. 그리고 이들을 제외한 데이터가 바로 이상치(Noise)가 된다.