이상치(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
복사