「쓰레기를 넣으면 쓰레기가 나온다(GIGO, Garbage In Garbage Out)」는 머신러닝의 오랜 격언입니다.
모델이 아무리 좋아도 입력 데이터의 질이 나쁘면 좋은 결과를 기대할 수 없습니다.
그래서 학습 전에 데이터를 정돈하는 「전처리(preprocessing)」 단계가 모든 프로젝트의 60~80%를 차지한다고 자주 말합니다.
결측치(missing value) 처리가 첫 번째입니다.
어떤 값이 비어 있을 때 그 행을 통째로 버릴지, 평균·중앙값으로 채울지, 다른 모델로 예측해 채울지를 정해야 합니다.
데이터의 성격에 따라 정답이 다르며, 함부로 0으로 채우면 모델을 속이게 됩니다.
이상치(outlier) 처리도 중요합니다.
측정 오류로 들어온 비정상적으로 큰 값이나 작은 값은 모델을 흔들 수 있습니다.
박스플롯·Z-score·IQR 같은 통계적 도구로 식별한 뒤 제거하거나, 클리핑(잘라 내기)하거나, 이상치에 강한 모델을 쓰는 것이 일반적입니다.
스케일링(scaling)은 변수마다 단위가 크게 다를 때 필요합니다.
「나이(0~100)」와 「연봉(0~10억)」을 함께 학습시키면 연봉이 모델을 압도해 버립니다.
표준화(Standardization, 평균 0·표준편차 1)나 정규화(Normalization, 0~1 사이)로 변수의 크기를 비슷하게 맞춰 줍니다.
범주형 변수(예: 「서울」, 「부산」, 「대구」)는 모델이 이해할 수 있도록 숫자로 바꿔야 합니다.
가장 단순한 방법이 원-핫 인코딩(one-hot encoding) — 각 범주를 별도 칼럼으로 펼쳐 0/1로 표현 — 이고, 범주가 많을 때는 임베딩이나 타깃 인코딩 같은 더 영리한 방법을 씁니다.
한 줄 요약
데이터 전처리는 결측치·이상치 처리, 스케일링, 범주형 인코딩 등을 포함하며, 머신러닝 프로젝트 시간의 60~80%를 차지하는 가장 중요한 단계입니다.
더 알아볼 것
- 결측치 처리 — 삭제 vs 대치 vs 예측
- Min-Max·Z-score·로버스트 스케일러
- 원-핫 vs 임베딩 — 범주형 변수 처리법