여기서 x(i)는 특정 샘플이고, xmin은 특성 중에서 가장 작은 값이고 xmax는 가장 큰 값입니다.
사이킷런에 구현된 최소-최대 스케일 변환 기능은 다음과 같이 사용합니다.
>>> from sklearn.preprocessing import MinMaxScaler
>>> mms = MinMaxScaler()
>>> X_train_norm = mms.fit_transform(X_train)
>>> X_test_norm = mms.transform(X_test)
최소-최대 스케일 변환을 통한 정규화는 정해진 범위의 값이 필요할 때 유용하게 사용할 수 있는 일반적인 기법입니다. 표준화는 많은 머신 러닝 알고리즘, 특히 경사 하강법 같은 최적화 알고리즘에서 널리 사용됩니다. 3장에서 보았던 로지스틱 회귀와 SVM 같은 여러 선형 모델은 가중치를 0 또는 0에 가까운 작은 난수로 초기화합니다. 표준화를 사용하면 특성의 평균을 0에 맞추고 표준 편차를 1로 만들어 정규 분포와 같은 특징을 가지도록 만듭니다. 이는 가중치를 더 쉽게 학습할 수 있도록 만듭니다. 또 표준화는 이상치 정보가 유지되기 때문에 제한된 범위로 데이터를 조정하는 최소-최대 스케일 변환에 비해 알고리즘이 이상치에 덜 민감합니다.14
표준화 공식은 다음과 같습니다.
여기서 μx는 어떤 특성의 샘플 평균이고 σx는 그에 해당하는 표준 편차입니다.
14 역주 최소-최대 스케일 변환은 데이터셋에 비정상적으로 아주 큰 값이나 아주 작은 값이 들어 있을 때 다른 샘플들을 좁은 구간에 촘촘하게 모으게 만듭니다.