본문 바로가기
Study/Machine Learning

[ML] 데이터 스케일링(Data Scaling) 종류 비교

by hyeonjins 2025. 2. 10.

1. 스케일링이란?

  • 머신러닝에서 각 특성(feature)의 값 범위를 일정하게 조정하는 과정
  • 데이터의 크기(scale)를 맞춰 모델이 특정 변수에 의해 영향을 받지 않도록 조정하는 것
  • 거리 기반 알고리즘(KNN, SVM 등)과 선형 모델(로지스틱 회귀, 선형 회귀 등)에서 중요

 

2. 스케일링을 하는 이유

  • 머신러닝 알고리즘이 변수의 단위와 크기에 영향을 받지 않도록 조정
  • 모델의 학습 속도 향상수렴 속도 개선
  • 특성이 서로 다른 크기를 가질 때, 가중치(weight)의 균형 유지
  • 거리 기반 모델(KNN, SVM 등)에서 거리 계산 시 한 특성이 지나치게 영향을 주는 것을 방지
  • KNN은 유클리드 거리(Euclidean Distance)를 이용하여 데이터를 분류하는 알고리즘이므로, 변수의 스케일이 다르면 거리에 영향을 미쳐 성능이 저하될 수 있음. 따라서, 모든 변수의 중요도가 동일하도록 만들기 위해 스케일링을 수행해야 함.
    SVM은 결정 경계(Decision Boundary)와 데이터 포인트 간 마진(Margin)을 최대로 만드는 알고리즘이므로, 특성의 크기에 따라 마진 계산이 왜곡될 수 있음. 따라서, 모든 특성이 동일한 크기를 갖도록 표준화(Standardization)를 수행하는 것이 중요함.
  • PCA(주성분 분석)에서 데이터의 분산을 고려할 때 중요
  • 신경망 모델(딥러닝)에서는 스케일이 크면 학습이 불안정할 수 있음

 

3. 스케일링의 여러 방법 비교

🔹 정규화 (Normalization)

- 최소-최대 정규화 (Min-Max Scaling)

  • 모든 데이터를 특정 범위(보통 0~1)로 변환
  • 데이터의 범위를 조정하여 작은 값과 큰 값의 차이를 줄임
  • 이상치(outlier)에 민감함 → 데이터 범위가 넓을 경우 왜곡 가능
  • 신경망(딥러닝) 모델에서 자주 사용됨
  • ex) 딥러닝, 이미지 데이터 처리, RGB 픽셀 값 정규화

- 최대 절대값 스케일링 (Max Abs Scaling)

  • 데이터의 최대 절댓값을 기준으로 -1에서 1 사이로 변환
  • 0을 중심으로 데이터가 대칭을 이루는 경우 유용
  • 이상치의 영향을 받을 수 있음
  • ex) 음수와 양수가 포함된 데이터, 신호 데이터

 

🔹 표준화 (Standardization)

- Z-score 표준화

  • 데이터의 평균을 0, 표준편차를 1로 변환
  • 정규분포를 따르는 데이터에서 효과적
  • 이상치(outlier)에 영향을 받을 수 있음
  • 모든 특성이 동일한 스케일을 가지게 됨
  • ex) PCA, 로지스틱 회귀, 선형 회귀, SVM, KNN

 

🔹 로버스트 스케일링 (Robust Scaling)

  • 중앙값(median)과 사분위 범위(IQR)를 사용하여 변환
  • 가장 덜 민감한 스케일링 방법
  • 이상치(outlier)가 많을 때 주로 사용하며, 중앙값 및 IQR을 활용함

 

🔹 로그 변환 (Log Transformation)

  • 데이터가 한쪽으로 치우친(skewed) 경우 정규 분포에 가깝게 변환
  • 데이터의 왜곡(skewness)을 줄이고 정규성을 증가시킴
  • 이상치의 영향을 줄일 수 있음

 

4. scikit-learn의 스케일링 방법

  • StandardScaler : Z-score 표준화 적용 (평균 0, 분산 1)
  • MinMaxScaler : Min-Max 정규화 적용 (0~1 범위로 변환)
  • RobustScaler : 중앙값과 IQR을 사용하여 이상치 영향을 줄임
  • MaxAbsScaler : 최대 절댓값을 기준으로 스케일링

 

5. 스케일링이 필요하지 않은 경우

  • 트리 기반 모델 (랜덤 포레스트, XGBoost, LightGBM, 결정 트리)
    • 트리는 데이터의 절대적인 크기가 아닌 순위(순서)와 분할(split) 기준을 사용하기 때문에 스케일링이 필요 없음. 트리 모델은 피처의 크기와 관계없이 이분법으로 분리되기 때문에 값에 크게 민감하지 않음. Threshold와 비교했을 때 더 큰 값인지 작은 값이지만 알아내면 되므로 굳이 값을 조정하는 scaling 과정이 필요하지 않음. Gini Index나 Entropy와 같은 불순도 측정 방식도 데이터의 비율을 고려하므로 스케일 조정이 필요 없음.
    • 다만, 트리 모델이 거리 기반 모델(KNN, SVM)과 결합되거나, L1/L2 정규화가 적용된 Gradient Boosting 모델을 사용할 경우에는 스케일링이 성능 향상에 도움을 줄 수 있음. 즉, 일반적인 트리 모델에서는 불필요하지만, 특정 경우에는 고려할 수 있음.
      Is Feature Scaling necessary for Tree-Based Models?
      How Does Tree-Based Model Work?
      Feature Scaling in Tree-Based Model
  • 나이브 베이즈 (Naïve Bayes)
    • 확률 기반 계산을 수행하므로 데이터 크기에 영향을 받지 않음
  • 특성이 동일한 범위에 있는 경우
    • 이미 모든 특성이 비슷한 크기를 가지고 있다면 스케일링이 필요 없음

 

 

 

References

 

Data Scaling: A Simple Journey to More Robust Analysis

As we dive into the vast ocean of data analysis and machine learning, we often encounter the challenge of dealing with variables on…

medium.com

 

 

Is It Necessary For Feature Scaling in Tree-Based Models? - NBD Lite #20

Would it be a futile attempt?

www.nb-data.com