이상치 데이터는 아웃라이어라고도 불리며 전체 데이터의 패턴에서 벗어난 이상 값을 가진 데이터이다.

이로인해 머신러닝 모델의 성능에 영향을 받는 경우가 발생하기 쉽다. 이상치를 찾는 방법은 여러 가지가 있지만 대표적으로 IQR(Inter Quantile Range) 방식을 적용할 수 있다

 

Inter Quantile Range


IQR는 사분위(Quantile) 값의 편차를 이용하는 기법으로 흔히 박스 플롯(Box Plot) 방식으로 시각화할 수 있다.

사분위는 전체 데이트를 값을 오름차순하고 1/4(25%)씩 구간을 분할하는 것을 지칭한다.

 

가령 100명의 시험 성적이 0점부터 100점까지 있다면, 이를 100등부터 1등까지 성적순으로 정렬한 뒤에 1/4 구간으로 Q1, Q2, Q3, Q4와 같이 나누는 것이다.

 

IQR을 이용해 이상치 데이터를 검출하는 방식은 아래와 같이 보통 IQR에 1.5를 곱해서 생성된 범위를 이용해 최댓값과 최솟값을 결정한 뒤 최댓값을 초과하거나 최솟값에 미달하는 데이터를 이상치로 간주하는 것이다.

 

이상치 데이터를 검출하기 위해서는 가장 먼저 어떤 피처의 이상치를 뽑을 것인지에 대한 선택이 중요합니다. 매우 많은 피처가 있을 경우 이들 중 결정값과 가장 상관성이 높은 피처들을 위주로 이상치를 검출하는 것이 좋다. 모든 피처들의 이상치를 검출하는 것은 시간 자원이 많이 소모되며, 결정값과 상관성이 높지 않은 피처일 경우 이상치를 제거하더라도 성능 향상에 기여하지 않기 떄문이다. DataFrame의 corr()를 이용해 각 피처별로 상관도를 구한 뒤 시본의 heatmap을 사용해 시각화가 가능하다.

 

 

Reference


[1] 파이썬 머신러닝 완벽가이드

+ Recent posts