특성 스케일링의 중요성과 실천 방법
카테고리
데이터 과학/AI
서브카테고리
머신러닝
대상자
- 머신러닝 초보자 및 실무자
- 수치적 특성 전처리에 관심 있는 데이터 과학자
- 모델 성능 최적화를 목표로 하는 개발자
- 난이도: 중간 (기초 수학 지식 필요)
핵심 요약
- 특성 스케일링은 모델 편향 방지, 거리 기반 알고리즘 성능 향상, 최적화 알고리즘 속도 개선에 필수적
- StandardScaler →
mean=0, std=1
(로지스틱 회귀, SVM 등에 적합) - MinMaxScaler →
0~1
범위 조정 (신경망, KNN 등에 적합) - RobustScaler → 외부값에 강한 스케일링 (IQR 기반)
섹션별 세부 요약
1. 특성 스케일링의 필요성
- * 특성의 수치 범위 차이로 인한 모델 편향 예방 (예: 연령 vs 급여)
- * 거리 기반 알고리즘 (KNN, SVM)의 정확도 향상
- * 경사 하강법 등 최적화 알고리즘의 수렴 속도 개선
- * 단위 차이로 인한 데이터 불일치 해결 (kg vs 미터)
2. 주요 스케일링 방법
- StandardScaler
- * 수식:
z = (x - μ)/σ
- * mean=0, std=1 조정 (로지스틱 회귀, PCA 등에 적합)
- * 코드 예시:
from sklearn.preprocessing import StandardScaler
- MinMaxScaler
- * 수식:
X_scaled = (X - X_min)/(X_max - X_min)
- * 0~1 범위로 조정 (신경망, KNN 등에 적합)
- * 코드 예시:
from sklearn.preprocessing import MinMaxScaler
- RobustScaler
- * IQR 기반 스케일링 (외부값에 강함)
- * 코드 예시:
from sklearn.preprocessing import RobustScaler
3. 스케일링 적용 시 주의사항
- * Train/Test 분할 후 스케일링 적용 (데이터 누설 방지)
- * 범주형 특성은 스케일링 제외 (수치형만 대상)
- * 트리 기반 모델 (랜덤 포레스트, XGBoost 등)은 스케일링 필요 없음
결론
- StandardScaler는 대부분의 모델에 적합하고, MinMaxScaler는 범위가 명확한 데이터에 효과적
- 스케일링은 모델 성능 향상의 핵심 전처리 단계로, 반드시 Train/Test 분할 후에 적용해야 함
- 외부값이 많은 경우 RobustScaler를 사용하고, 범주형 특성은 무시해야 함