본문 바로가기
Computer Science/DL & ML

Feature Scaling이란?

by tabasco 2023. 7. 4.

오늘은 머신러닝에서 활용하는 Feature Scaling에 대해 알아보려 합니다.
저는 대학에서 통계학에 대해 공부하진 않았지만, 고등학교 시절 통계 단원에 나왔던 정규화와를 떠올리며 이해하니 조금은 이해가 잘 되었던 것 같습니다.

 

개념

Feature Scaling은 데이터의 범위를 조정하거나 표준화하는 방법입니다. 특성 간에 다른 범위나 척도를 가진 데이터를 같은 범위나 척도로 변경하는 것을 목표로 합니다. Feature Scaling은 머신러닝 모델의 입력 데이터로 사용되는 특성의 값들이 너무 크거나, 혹은 특성 간의 범위 차이가 클 때 모델 성능에 영향을 줄 수 있기 때문에 중요합니다.


활용 이유

Feature Scaling은 머신러닝 모델의 성능을 향상시키는 데 도움이 됩니다. 모든 특성이 비슷한 스케일을 가지면 최적의 솔루션에 더 빨리 도달하게 됩니다. 또한, 특히 거리 기반 알고리즘(예: k-NN, SVM, PCA)에서는 스케일링이 매우 중요합니다. 예를 들어, 거리 계산에 사용되는 각 축이 다른 범위를 가질 경우, 더 큰 범위를 가진 축이 더 큰 영향을 미치게 됩니다.


종류 및 비교

- Normalization(Min-Max Scaling)

데이터의 범위를 0과 1 사이로 조정합니다. 이상치가 있을 때는 매우 작은 범위로 압축될 수 있습니다.

 

- Standardization

평균을 0, 표준편차를 1로 만듭니다. 이상치의 영향을 덜 받으며, 대부분의 머신러닝 알고리즘에 적합합니다.

 

예시

# Standardization
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)

# Normalization
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(data)

이 예제에서 data는 스케일링을 적용할 데이터를 의미합니다.

Feature Scaling은 간단하지만 머신러닝 모델 성능에 큰 영향을 미칠 수 있는 중요한 전처리 과정입니다. 그러나 모든 알고리즘이 Feature Scaling을 필요로 하는 것은 아닙니다. Decision Tree와 Random Forest와 같은 모델들은 Feature Scaling의 영향을 받지 않습니다. 그러나 Logistic Regression, SVM, Neural Networks 등과 같은 많은 알고리즘은 Feature Scaling을 필요로 합니다.

'Computer Science > DL & ML' 카테고리의 다른 글

One-Hot Encoding이란  (0) 2023.07.03