▶이상치(outlier)
- 관측된 데이터 범위에서 많이 벗어난 아주 작은 값 혹은 큰 값을 말한다.
- 크게 2가지 기준이 있다.
1. ESD(Extreme Student Deviation)를 이용한 이상치 발견
- 데이터가 정규분포를 따른다고 가정할 때, 평균에서 표준편차의 3배 이상 떨어진 값
- 모든 데이터가 정규 분포를 따르지 않을 수 있기 때문에 다음 상황에서는 제한된다.
● 데이터가 크게 비대칭일 때 (log 변환 등을 노려볼 수 있다.)
● 샘플 크기가 작을 경우
2. IQR(Inter Quantile Range)를 이용한 이상치 발견
● Boxplot : 데이터의 사분위 수를 포함하여 분포를 보여주는 시각화 그래프,
상자-수염 그림이라고도 함
Q1 (25%), Q2(50%, 중위수), Q3(75%)
IQR(Inter Quantile Range) = Q3 - Q1
상한 이상치 = Q3 +1.5 * IQR
하한 이상치 = Q1 - 1.5 * IQR
○ ESD를 이용한 처리
import numpy as np
mean = np.mean(data)
std = np.std(data)
upper_limit = mean + 3*std
lower_limit = mean - 3*std
○ IQR을 이용한 처리 (box plot)
Q1 = df['column'].quantile(0.25)
Q3 = df['column'].qunatile(0.75)
IQR = Q3 - Q1
uppper_limit = Q3 + 1.5*IQR
lower_limit = Q1 - 1.5*IQR
○ 조건 필터링을 통한 삭제 (boolean indexing)
df[df['column'] > limit_value]
▶ 결측치(Missing Value)
● 수치형 데이터
- 평균값 대치 : 대표적인 대치 방법
- 중앙값 대치 : 데이터에 이상치가 많아 평균 값이 대표성이 없다면
중앙값을 이용
(이상치는 평균 값을 흔들리게 함)
● 범주형 데이터
- 최빈값 대치
● 사용 함수
○ 간단한 삭제 & 대치
- df.dropna(axis = 0) : 행 삭제
- df.dropna(axis = 1) : 열 삭제
- Boolean Indexing
- df.fillna(value) : 특정 값으로 대치(평균, 중앙, 최빈값)
○ 알고리즘을 이용
- sklearn.impute.SimpleImputer : 평균, 중앙, 최빈 값으로 대치
- SimpleImputer.statistics_ : 대치한 값 확인 가능
- sklearn.impute.IterativeImputer : 다변량 대치(회귀 대치)
- sklearn.impute.KNNImputer : KNN 알고리즘을 이용한 대치
'데이터분석 study > ML_ 심화' 카테고리의 다른 글
TIL_24.08.27_데이터 분리, 교차검증 (0) | 2024.08.27 |
---|---|
TIL_24.08.26_데이터 전처리(encoding, scaling) (0) | 2024.08.26 |
TIL_24.08.20_ 회귀 알고리즘 복습 (0) | 2024.08.20 |
TIL_24.08.16_EDA (0) | 2024.08.16 |
TIL_24.08.14_데이터분석 프로세스(수집) (0) | 2024.08.14 |