Feature Scaling 완벽 가이드
Feature Scaling 완벽 가이드 (AI 전문가용)
1. 정의
Feature Scaling은 다양한 범위를 가진 특성들을 공통된 스케일로 변환하는 전처리 과정입니다.
2. 주요 목적
- 경사하강법 기반 모델 수렴 속도 향상
- 거리 기반 모델 정확도 향상
- 피처 우선순위 왜곡 방지
- PCA/LDA 같은 기법의 전처리
3. 주요 기법
기법 | 수식 | 설명 | 예시 |
Min-Max Scaling | (x - min) / (max - min) | 0~1 범위로 조정 | 이미지 픽셀 |
Standard Scaling | (x - 평균) / 표준편차 | 평균 0, 분산 1 | 선형 회귀 |
Robust Scaling | (x - Q2) / (Q3 - Q1) | 중앙값 기준 | 이상치 존재 시 |
MaxAbs Scaling | x / |x|max | -1~1 범위 | 희소 데이터 |
L2 Normalization | x / ||x|| | 벡터 길이 기준 | 문서 벡터화 |
4. 실무 코드 예시 (Scikit-learn)
from sklearn.preprocessing import MinMaxScaler, StandardScaler, RobustScaler, MaxAbsScaler, Normalizer
X = [[1, 100], [2, 300], [3, 600]]
minmax = MinMaxScaler()
X_minmax = minmax.fit_transform(X)
standard = StandardScaler()
X_standard = standard.fit_transform(X)
robust = RobustScaler()
X_robust = robust.fit_transform(X)
maxabs = MaxAbsScaler()
X_maxabs = maxabs.fit_transform(X)
normalizer = Normalizer(norm='l2')
X_l2 = normalizer.fit_transform(X)
5. 장단점 비교
기법 | 장점 | 단점 |
MinMax | 직관적, 범용성 | 이상치 민감 |
Standard | 정규분포 가정 모델에 적합 | 이상치 민감 |
Robust | 이상치에 강건 | 분포 왜곡 가능 |
MaxAbs | 희소 행렬 유지 | 값 분포에 제한적 |
Normalizer | 문서 유사도 분석 적합 | 절대값 손실 |
6. 기대 효과
- 수렴 속도 향상
- 모델 안정성 확보
- 정확도 개선
- 하이퍼파라미터 튜닝 효율 증가
7. 적용 시기
- 훈련 직전
- Cross-validation 이전
- 이상치 제거 후
- PCA 등 적용 전
8. 모델별 적합 기법
모델 | 적합 기법 | 설명 |
선형 회귀 | Standard | 정규분포 가정 |
SVM / KNN | MinMax or Standard | 거리 기반 |
트리 계열 | 불필요 or Robust | 스케일 불변 |
신경망 | MinMax / Standard | 수렴 향상 |
PCA / LDA | Standard | 공분산 기반 |
희소 데이터 | MaxAbs | 형태 유지 |
9. 정리 비교표
기법 | 분포 보존 | 이상치 대응 | 사용 빈도 | 거리 기반 적합 | 분류/회귀 적합 | 희소 데이터 적합 |
MinMax | 낮음 | 낮음 | ★★★★★ | O | ◎ | △ |
Standard | 높음 | 낮음 | ★★★★★ | O | ◎ | △ |
Robust | 중간 | 높음 | ★★★☆☆ | △ | O | △ |
MaxAbs | 낮음 | 낮음 | ★★★☆☆ | △ | △ | ◎ |
Normalizer | 낮음 | 낮음 | ★★☆☆☆ | ◎ | △ | ◎ |
10. 실무 팁
- fit은 반드시 훈련셋에만!
- GridSearchCV 사용 시 Pipeline 구성
- 스케일링 종류 변경만으로도 성능 개선 가능
- 이상치가 많다면 Robust부터 시작