⚙️ Tech/ML

[ML/python] 스케일링 (정규화, 표준화, Normalization, Min-Max Scaling, Standardization, Z-score Scaling)

fiftyline 2025. 2. 9. 17:36

 

데이터의 스케일이 중요한 모델의 경우 스케일링을 통해 단위를 맞춰주어야한다.

 

 

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

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler().fit(X_train)
Z_train = pd.DataFrame(scaler.transform(X_train), columns = X_train.columns)
Z_test = pd.DataFrame(scaler.transform(X_test), columns = X_test.columns)

Z_train.describe()

서로 다른 범위의 데이터를 [0,1]  범위로 변환한다.

이상치에 취약하며, 데이터분포를 가정하지 않는 모델에 적합하다.

최댓값과 최솟값이 중요한 경우 사용된다. (최대최소가 변하면 다시 정규화학습해야함)

신경망의 활성화함수(RdLU, Sigmoid, Tahn 등)이 특정 범위 내의 입력값에서 잘 동작하기 때문에 딥러닝(ANN, CNN, RNN)에서 자주 사용된다.

 

 

표준화(Standardization, Z-score Scaling)

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler().fit(X_train)
Z_train = pd.DataFrame(scaler.transform(X_train), columns = X_train.columns)
Z_test = pd.DataFrame(scaler.transform(X_test), columns = X_test.columns)

Z_train.describe()

데이터가 평균 0, 표준편차 1을 갖도록 변환한다.

이상치의 영향이 적어 이상치가 많다면 표준화가 더 안정적이다.

정규분포를 가정하는 데이터에서 효과적이며,

거리 기반 알고리즘(선형회귀, PCA, SVM, k-NN)에서 유용하다. → 평균을 0으로 맞추면 기울기(가중치) 업데이트 안정적



 

 

 

 

참고 서적 : GIL's LAB, 「파이썬을 활용한 머신러닝 자동화 시스템 구축」, 위키북스(2022)