정의
특징 스케일링(feature scaling)은 데이터 전처리 단계에서 각 특성(feature)의 값 범위를 일정한 규모로 변환하는 과정을 말한다. 주로 머신러닝 및 통계 모델에서 입력 변수들의 스케일 차이가 학습 알고리즘에 미치는 영향을 최소화하기 위해 사용된다.
주요 목적
- 수치 안정성 확보 – 큰 값과 작은 값이 동시에 존재할 경우 연산상의 오버플로나 언더플로가 발생할 위험을 감소시킨다.
- 학습 속도 향상 – 경사 하강법과 같은 최적화 알고리즘이 보다 균일한 단계 크기로 이동하도록 도와 수렴 속도를 높인다.
- 특정 거리 기반 모델의 정확도 개선 – k-최근접 이웃(k-NN), 서포트 벡터 머신(SVM), 군집화(K-means) 등에서 특성 간 거리가 모델 성능에 직접적인 영향을 미치므로 스케일링이 필요하다.
대표적인 스케일링 방법
| 방법 | 변환식 | 특징 |
|---|---|---|
| Min‑Max 정규화 | $x' = \frac{x - \min(x)}{\max(x) - \min(x)}$ | 결과가 $[0, 1]$ 구간에 매핑된다. 이상치(outlier)에 민감하다. |
| 표준화 (Z‑score 정규화) | $x' = \frac{x - \mu}{\sigma}$ ( $\mu$: 평균, $\sigma$: 표준편차) | 평균 0, 표준편차 1인 정규분포 형태로 변환한다. 이상치에 비교적 강인하다. |
| 단위 길이 정규화 (L2 정규화) | $x' = \frac{x}{|x|_2}$ | 각 샘플(관측치) 전체 벡터의 L2 노름을 1로 만든다. 텍스트 데이터의 TF‑IDF 벡터 등에 활용된다. |
| Robust Scaling | $x' = \frac{x - \text{median}}{\text{IQR}}$ (IQR: 사분위 범위) | 중앙값과 사분위 범위를 이용해 이상치 영향을 최소화한다. |
| Log 변환 | $x' = \log(x + 1)$ | 양의 값에 한해 적용하며, 지수적으로 증가하는 특성을 완화한다. |
적용 시 고려 사항
- 알고리즘 특성: 트리 기반 모델(결정 트리, 랜덤 포레스트, XGBoost 등)은 스케일에 민감하지 않으나, 거리 기반·선형 모델은 스케일링이 필수적이다.
- 훈련·시험 데이터 일관성: 훈련 데이터로 계산한 변환 파라미터(예: 평균, 표준편차)는 테스트 및 실제 서비스 데이터에도 동일하게 적용해야 한다.
- 이상치 존재 여부: 이상치가 많을 경우 Min‑Max 정규화보다 표준화, Robust Scaling 등을 선택한다.
- 해석 가능성: 표준화된 값은 원본 단위와 의미가 달라질 수 있으므로, 결과 해석 시 원본 스케일과의 관계를 고려해야 한다.
활용 예시
- 선형 회귀 / 로지스틱 회귀 – 표준화를 통해 가중치 해석이 일관되게 유지된다.
- SVM (RBF 커널) – 특성 스케일링이 없으면 특정 차원에 의해 커널 값이 과도하게 지배될 수 있다.
- k-NN 분류 – 거리 계산에 사용되는 모든 차원의 스케일을 동일하게 맞춰야 정확도가 향상된다.
- 신경망 – 입력값을 일정 범위(보통 $[0,1]$ 또는 $[-1,1]$)로 정규화하면 학습 초기 가중치 설정과 활성화 함수의 동작 범위가 최적화된다.
한계 및 주의점
- 스케일링이 모델 성능을 반드시 개선하는 것은 아니다. 경우에 따라 변환이 오히려 정보 손실을 초래할 수 있다.
- 시계열 데이터에서는 시점별 평균·표준편차가 변동할 경우, 전체 데이터를 한 번에 스케일링하면 데이터 누수가 발생할 위험이 있다.
- 범주형 변수는 원-핫 인코딩 후 스케일링이 필요 없으며, 직접 스케일링을 적용하면 의미가 손상될 수 있다.
결론
특징 스케일링은 다양한 머신러닝 알고리즘에서 입력 데이터의 수치적 차이를 균일하게 맞춤으로써 학습 효율성과 모델 성능을 향상시키는 핵심 전처리 단계이다. 적용 방법은 데이터 특성(분포, 이상치 존재 여부)과 사용 알고리즘의 요구사항에 따라 선택되어야 하며, 변환 파라미터의 일관된 재사용이 중요하다.