Search
🎒

이상치 처리

이상치(outlier) 처리란?

정상 데이터 범주에서 크게 벗어난 값이 존재할 경우, 이를 이상치로 판별하고 해당 데이터를 삭제하거나 다른 값을 채워주는 작업

이상치가 발생하는 이유

잘못된 데이터 수집 도구
데이터 입력 문제
기술 제한

이상치 처리를 하지 않으면 발생하는 문제

측정된 변수의 분산이 과도하게 큰 값이 발생
컴퓨터가 데이터의 전반적 패턴을 해석하는 데 혼란 일으킴

이상치 처리 과정

이상치 포함여부 판단하기 : 백분위수 기반
왜 이상치가 발생했는지 생각하기
이상치 처리 방법 결정하기 : 삭제? 대체? (임계값, 평활화, 클러스터링, 회귀)
이상치 처리하기

이상치 판단

Percentile (백분위수) 기반 이상치 판단
[출처] Statistics-Based Outlier Detection and Correction Method for Amazon Customer Reviews
Percentile에 따라 이상치를 판단하는 방법
Percentile: 크기가 있는 값들로 이뤄진 자료를 순서대로 나열했을 때 백분율로 나타낸 특정 위치의 값을 이르는 척도
25% 의 Q1과 75%의 Q3 의 각 값과 거리(Q3-Q1)를 구하여 1.5배 거리(내부 울타리 내의 값)이 아닌 데이터라면 outlier 임
Q1: 낮은 순에서 높은 순으로 정렬한 후 4등분 했을 때 25%에 해당하는 값(1사분위수)
Q3: 낮은 순에서 높은 순으로 정렬한 후 4등분 했을 때 75%에 해당하는 값(3사분위수)
IQR: 25% 의 Q1과 75%의 Q3 의 각 값과 거리(IQR= Q3 – Q1)
타이타닉 데이터

이상치 처리

Binning (평활화)

이웃값을 기반으로 저장된 데이터를 여러 버킷(bin)으로 나누고, 각 세그먼트의 데이터를 특정 값(예: 평균, 경계값 등)으로 바꾸는 방법
예시: 연령 데이터

클러스터링(Clustering)

거리 측정에 따라 데이터 포인트를 그룹화하는 방법
이미지 처리, 패턴 인식 및 시장 조사 등의 응용프로그램에서 자주 사용
군집에 속하지 않는 점을 이상치로 판단

머신러닝(선형회귀 기반의 이상치 처리 방법)

(1) 회귀(Regression)
연속된 값을 예측하는 데이터 마이닝 기법
(2) 선형회귀(Linear Regression)
변수에 맞는 최적의 선을 찾아 독립변수를 사용하여 종속변수를 예측하는 방법
Y값은 X값의 변화에 따라 선형적으로 증가하거나 감소
인과관계 모델링, 가설 테스트, 추론 및 예측 (시계열 데이터 예측 포함)에 사용

파이썬 코드 예시

concrete['slag'] # slag 열의 데이터 범위 확인 concrete['slag'].plot() # slag 열의 데이터를 플롯 # 300 이상의 값을 300으로 변경 concrete[concrete['slag'] > 300.]['slag'] = 300. concrete['slag'].plot()
Python
복사