1. 데이터 전처리

  • 데이터를 머신러닝 모델에 입력하기 위해 적절히 처리하는 과정
  • EDA / 모델이나 목적에 따라 달라지는 데이터 전처리
  • 선형 모델인지, 트리인지, 딥러닝인지 등에 따라 방식 달라짐


연속형 변수

Scaling

  • 데이터의 단위 또는 분포 변경
  • 선형 기반의 모델의 경우 변수들 간의 scale을 맞추는 것이 필수적


  • Min Max Scaling
  • Standard Scaling
  • Robust Scaling

스크린샷 2023-05-07 오후 9 03 47

Scaling + Distribution

  • Log transformation
    • 정규분포에 가깝게 스크린샷 2023-05-07 오후 9 06 05
  • Quantile transformation
    • 값을 uniform하게 / 정규분포에 맞추어 스크린샷 2023-05-07 오후 9 10 29


스크린샷 2023-05-07 오후 9 09 57

Binning

- 연속형 -> 범주형
- overfitting 방지 <img width="416" alt="스크린샷 2023-05-07 오후 9 10 53" src="https://user-images.githubusercontent.com/53086873/236676655-9eddea44-7d28-46e8-8e34-bc71e851301d.png">


범주형 변수

  • 보통 문자형으로 되어있어 머신러닝 모델의 입력 변수로 사용할 수 없음 -> 수치형 변수로 변환

Encoding

  • One hot encoding
    • 변수를 1과 0으로 변환
    • 변수가 많으면 차원의 저주 발생 스크린샷 2023-05-07 오후 9 12 58


  • Label encoding
    • 한개의 컬럼에서 범주마다 각기 다른 값을 갖도록 변환
    • 모델이 숫자의 순서를 특징으로 인식할 수 있는 문제 스크린샷 2023-05-07 오후 9 14 10


  • Frequency encoding
    • 해당 변수의 값이 나오는 빈도수를 변수의 값으로 지정 스크린샷 2023-05-07 오후 9 15 12


  • Target encoding
    • 각각의 범주가 가지는 타겟 변수의 평균을 값으로 지정
    • 서로 다른 범주이지만 같은 값을 갖게 될 수 있음
    • 새로 생기는 범주에 대해서는 값을 지정하기 어려움
    • overfitting 발생 가능 스크린샷 2023-05-07 오후 9 16 31


  • Embedding


2. 결측치 처리

Pattern

  • 결측치 패턴을 파악해서 규칙이 있는지 확인

스크린샷 2023-05-07 오후 10 02 31

Univariate

  • 제거
  • 평균값 삽입
  • 중위값 삽입
  • 상수값 삽입

스크린샷 2023-05-07 오후 10 07 11

Multivariate

  • 회귀분석
  • KNN nearest

스크린샷 2023-05-07 오후 10 10 42


3. 이상치

스크린샷 2023-05-07 오후 10 13 05

이상치 탐지

  • Z-Score
  • IQR

이상치 처리

  • 정성적
    • 이상치 발생 이유 파악
    • 이상치 의미 파악
  • 성능적
    • Train Test Distribution