ADP 실기준비

[ADP 실기] 1.1.1 데이터 전처리 - 이상치 확인 및 결측값 처리

xper100 2022. 11. 1. 20:28

목차

  1. 단순대치 & centralimputation (평균, 모드, 빈번한값, 일정한값 등)
  2. 다중 대치
  3. 단순확률 대치 (Hot-deck, nearest neighbor)
  4. knnImputation

1. 단순대치 & 평균대치

  • 단순대치 - 결측값이 존재하는 레코드를 삭제하는 기법
  • 평균대치 - 관측 또는 실험을 통해 얻어진 데이터의 평균으로 대치하는 기법
    • 비조건부 평균대치법 : 기초통계량을 통해 대치
    • 조건부 평균대치법 : 회귀분석을 활용한 대치법
import numpy as np
from sklearn.impute import SimpleImputer

# 수치형 데이터 - 평균값으로 대치
imp = SimpleImputer(missing_values=np.nan, strategy='mean')

# 카테고리형 데이터 - 가장 빈번한 값으로 대치
imp = SimpleImputer(strategy="most_frequent")

## 모듈 훈련
train = [[55, 20], [np.nan, 35], [71, 64]]
imp.fit(train)

# 모듈 변환
test = [[np.nan, 43], [81, np.nan], [76, 34]]
imp.transform(test)

2. 다중대치

단순대치법을 m번 반복하여 m개의 가상적 완전 자료를 만드는 방법
1단계 : 대치(Imputation step)
2단계 : 분석(Analysis step)
3단계 : 결합(Combination step)
# IterativeImputer를 쓰기위해 필요한 라이브러리
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer

# 회귀모델 사용
from sklearn.linear_model import LinearRegression
lr = LinearRegression()

# Default = BaysianRidge()
imp_multiple = IterativeImputer(estimator = lr,random_state = 123)

imp_multiple.fit(train)
imp_multiple.transform(test)

3. 단순확률 대치 (Single Stochastic Imputation)

평균대치법에서 추정량 표준 오차의 과소 추정문제를 보완하고자 고완된 방법
  • Hot-deck
  • Nearest-Neighbor

4. KNNImputation

from sklearn.impute import KNNImputer

knnimp = KNNImputer(n_neighbors= 3, add_indicator=True)
knnimp.fit(train)
knnimp.transform(test)

5. 시계열 결측값처리

  • Forward Fill
  • Backward Fill
  • Linear Interpolation
timeseries_dataframe.fillna(method = 'ffill', inplace = True)

timeseries_dataframe.fillna(method = 'bfill', inplace = True)

# Interpolate
"""
method는 여러가지 방법이 존재
- linear
- time
- index
- pad
- polynomial
- nearest ...

단, Multiindex는 linear만 적용가능
"""
timeseries_dataframe.interpolate(method = 'linear',limit_direction='both', inplace = True)

6. 알고리즘 내에서 결측값 처리

XGBoost & LightGBM은 모델 안에서 결측값 처리 가능

Reference

 

MICE and KNN missing value imputations through Python

In Continuation to my blog on missing values and how to handle them. I am here to talk about 2 more very effective techniques of handling missing data through: MICE or Multiple Imputation by Chained Equation KNN or K-Nearest Neighbor imputation First we wi

www.numpyninja.com