인코딩과 스케일링
대부분의 ML 알고리즘은 수치형 입력만 처리할 수 있으며, 특성의 스케일에 민감합니다. 범주형 인코딩(Encoding)과 수치형 스케일링(Scaling)은 이를 해결하는 필수 전처리입니다.학습 목표
- 범주형 변수의 인코딩 방법(Label, One-Hot, Target)을 구분하여 적용할 수 있습니다.
- 수치형 변수의 스케일링 방법(Standard, MinMax, Robust)을 선택할 수 있습니다.
- 각 방법이 적합한 알고리즘과 상황을 판단할 수 있습니다.
왜 중요한가
“서울”, “부산” 같은 범주형 데이터를 그대로 모델에 입력할 수 없습니다. 또한 면적(100-5000)과 방 수(1-10)처럼 스케일이 다른 특성은 거리 기반 알고리즘(KNN, SVM)에서 큰 특성이 결과를 지배합니다.핵심 개념
범주형 인코딩
| 방법 | 적합한 상황 | 주의사항 |
|---|---|---|
| Label Encoding | 순서가 있는 범주 | 순서 없는 범주에 사용 시 잘못된 관계 학습 |
| One-Hot Encoding | 순서 없는 범주 (고유값 소수) | 고유값 많으면 차원 폭발 |
| Target Encoding | 고유값이 많은 범주 | 데이터 누수 위험 → 교차검증 필요 |
| Ordinal Encoding | 명시적 순서 (학력, 등급) | 간격 동일 가정 주의 |
수치형 스케일링
| 방법 | 변환 | 적합한 상황 | 관련 레퍼런스 |
|---|---|---|---|
| StandardScaler | (x - mean) / std | 정규 분포 가정, SVM/로지스틱 회귀 | StandardScaler |
| MinMaxScaler | (x - min) / (max - min) | [0,1] 범위 필요, 신경망 | MinMaxScaler |
| RobustScaler | (x - median) / IQR | 이상치가 많은 데이터 | - |
| MaxAbsScaler | x / max(|x|) | 희소 행렬 보존 | - |
알고리즘별 전처리 필요 여부
| 알고리즘 | 인코딩 필요 | 스케일링 필요 | 이유 |
|---|---|---|---|
| 선형 회귀 | 필수 | 권장 | 계수 비교를 위해 |
| 로지스틱 회귀 | 필수 | 필수 | 경사 하강법 수렴 |
| SVM | 필수 | 필수 | 거리 기반 |
| KNN | 필수 | 필수 | 거리 기반 |
| 결정 트리 | Label 가능 | 불필요 | 분할 기준만 사용 |
| 랜덤 포레스트 | Label 가능 | 불필요 | 트리 기반 |
| XGBoost/LightGBM | Label 가능 | 불필요 | 트리 기반 |
Q: 트리 기반 모델에서도 스케일링이 필요한가요?
Q: 트리 기반 모델에서도 스케일링이 필요한가요?
결정 트리, 랜덤 포레스트, XGBoost 등 트리 기반 모델은 분할 기준점(threshold)으로 데이터를 나누므로 스케일에 영향을 받지 않습니다. 따라서 스케일링이 불필요합니다.
Q: One-Hot 인코딩 시 고유값이 100개 이상이면 어떻게 하나요?
Q: One-Hot 인코딩 시 고유값이 100개 이상이면 어떻게 하나요?
Target Encoding이나 Frequency Encoding을 사용하세요. CatBoost는 범주형 변수를 내장 처리할 수 있어서 별도 인코딩이 불필요합니다.
체크리스트
- 범주형 변수에 적절한 인코딩 방법을 선택할 수 있다
- StandardScaler, MinMaxScaler, RobustScaler의 차이를 설명할 수 있다
- 알고리즘별 스케일링 필요 여부를 판단할 수 있다
- 데이터 누수를 방지하면서 전처리를 수행할 수 있다

