본문으로 건너뛰기
Minsing Log
뒤로 가기

Data preprocessing

Data & ML

Data preprocessing

Data preprocessing 역할

  1. 머신러닝의 input 형태로 데이터 변환(feature engineering) -> 모델이 학습하기 위해서는 그에 알맞는 numerical한 data로 변환해야함.

  2. NAN/NULL(결측값) 및 outlier(이상치)를 처리하여 데이터 정제 -> 모델이 학습하기 위한 data로 변환/ 위에 있는 녀석들은 학습 x

  3. train test splite


Categorical Variable 처리방식

명목형 자료(norminal data)

잘 설명된 원핫과 더미 차이 링크

순서형 자료(ordinal data)

• 수치에 맵핑하여 변환하지만,수치 간 크기 차이는 커스텀 가능

• 크기 차이가 머신러닝 결과에 영향을 끼칠 수 있음


Numerical Variable 처리 방식

바로 input값으로 사용할 수 있지만 모델의 성능을 높이기 위해서 변환 필요

1) Scaling

정규화(Normalization)

표준화(Standardization)

2) 범주화


Missing Value 처리

처리방식

  1. NAN값이 존재하는 샘플 삭제
  2. 결측값이 많이 존재하는 feature 삭제
  3. 다른 값으로 대체(mean/median/simpleImputer/머신러닝 이용)

Outlier처리

이상치 판단 기준방법

  1. 통계 지표(카이제곱 검정,IQR 지표등)을 사용
  2. 데이터 분포 보고 직접 판단
  3. 머신러닝 기법 사용, 이상치 분류

train test split

cf)train test split parameters

  1. random_state: 세트를 섞을 때 해당 int 값을 보고 섞으며, 하이퍼 파라미터를 튜닝시 이 값을 고정해두고 튜닝해야 매번 데이터셋이 변경되는 것을 방지할 수 있습니다.

  2. stratify: default=None 입니다. classification을 다룰 때 매우 중요한 옵션값입니다. stratify 값을 target으로 지정해주면 각각의 class 비율(ratio)을 train / validation에 유지해 줍니다. (한 쪽에 쏠려서 분배되는 것을 방지합니다) 만약 이 옵션을 지정해 주지 않고 classification 문제를 다룬다면, 성능의 차이가 많이 날 수 있습니다.

  3. test_size: 테스트 셋 구성의 비율을 나타냅니다. train_size의 옵션과 반대 관계에 있는 옵션 값이며, 주로 test_size를 지정해 줍니다. 0.2는 전체 데이터 셋의 20%를 test (validation) 셋으로 지정하겠다는 의미입니다. default 값은 0.25 입니다.




공개 여정 구독

글이 올라오면 이메일로 보내드릴게요.

개발, 창업, 배움, 실패와 회고를 짧고 솔직하게 기록합니다. 검색으로 스쳐가는 독자가 아니라 여정을 따라오는 팬을 만들기 위한 뉴스레터입니다.

뉴스레터는 준비 중입니다. 그동안 RSS 로 구독하거나 이메일 로 알림을 요청해 주세요.


이 글 공유하기:

댓글

GitHub 계정으로 로그인해 댓글을 남길 수 있습니다.


이전 글
Supervised Learning(Regression)
다음 글
자료의 형태