PYTHON/Python

Python 머신러닝 피처 스케일링과 min-max 정규화 기초 정리

진리뷰 2024. 3. 28. 09:00
반응형

 

 

Python-머신러닝-피처-스케일링과-min-max-정규화-기초-정리-썸네일
피처 스케일링과 min-max 정규화

 

 

 

이 글은 Python 머신러닝 피처 스케일링과 min-max 정규화 개념 기초 정리를 담고 있습니다.

 

 

 

피처 스케일링(Feature scaling)

 

  • 과적합 방지를 위해, 독립변수(x, Feature)의 범위 값 조정. 이로써 모델 성능 향상 가능.
  • 경사 하강법(Gradient Descent) 기반 알고리즘은 x값이 경사하강법 단계 크기에 영향을 크게 미침. 따라서 피처 스케일링 적용 필요.

ex. Linear Regression, Logistic Regression, Neural Network...

  • 점들 간 거리 기반 알고리즘(Distance Based Algorithms)도 피처 스케일링 적용 필요.

ex. KNN, K-means, SVM

 

 

 

min-max 정규화(Min-max normalization)

 

  • (단위 등이) 서로 다른 값의 범위를 0~1로 조정하는 피처 스케일링 방법
  • 사이킷런 MinMaxScaler() 함수로 구현 가능
from sklearn.preprocessing import MinMaxScaler
sca_minmax = MinMaxScaler()

 

min-max-normalization
min-max 정규화 공식

 

  • X값이 최소: 분자도 최솟값이 되므로, 0
  • X값이 최대: 분자=분모이므로, 1
  • 적용하기 전, 먼저 이상치 제거가 필요하다.

이상치 제거 ex. IQR turkey, outlier detection 알고리즘

 

 

 

min-max 정규화 예시

 

  • 학습 전 train, test 셋으로 분류
  • train에 fit_transform() 사용. test에는 transform() 사용.
from.sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler

# train, test 분류
X = df['Feature']
Y = df['y']
x_train, x_test, y_train, y_test = train_test_split(X, Y ,testsize=0.3)

# min-max정규화 객체 생성
sca_minmax = MinMaxScaler()

# min-max정규화
x_train_minmax= sca_minmax.fit(x_train)
x_test_minmax = sca_minmax.transform(x_test)

 


 

추가 참고 글

피처 스케일링이란? 정규화 vs 표준화

 

[BASIC, TIP] 피처 스케일링이란? 정규화 vs 표준화?

 

dacon.io

반응형
top