표준화(StandardScaler)와 정규화(MinMaxScaler)는 둘 다 데이터 스케일링의 방법 중 하나입니다. 스케일링은 데이터의 크기(scale)를 조정하는 것으로, 일반적으로 모델의 성능을 향상시키는 데 도움이 됩니다.
표준화(StandardScaler)는 평균을 0으로, 표준편차를 1로 만드는 스케일링 방법입니다. 이 방법은 데이터가 정규분포를 따른다고 가정할 때 사용하면 효과적입니다. 평균을 0으로 만드는 것은 데이터의 중심을 원점으로 이동시키는 것이며, 표준편차를 1로 만드는 것은 데이터의 분산 정도를 조정하는 것입니다.
# 원핫인코딩된 데이터
df.head()
# StandardScaler 여러 변수에 적용
cols = ['가격', '호수', '칼로리']
scaler = StandardScaler()
df[cols] = scaler.fit_transform(df[cols])
df
정규화(MinMaxScaler)는 데이터의 최솟값을 0으로, 최댓값을 1로 만드는 스케일링 방법입니다. 이 방법은 데이터가 정규분포를 따르지 않거나 이상치(outlier)가 있는 경우에도 사용할 수 있습니다. 최솟값을 0으로, 최댓값을 1로 조정함으로써 데이터의 범위를 0과 1 사이로 조정하는 것입니다.
# MinMaxScaler(정규화)
from sklearn.preprocessing import MinMaxScaler
cols = ['가격', '호수', '칼로리']
scaler = MinMaxScaler()
df[cols] = scaler.fit_transform(df[cols])
df
따라서, 표준화(StandardScaler)는 데이터가 정규분포를 따르고, 이상치가 없는 경우에 사용하며, 정규화(MinMaxScaler)는 데이터의 최솟값과 최댓값이 정해져 있거나 데이터가 정규분포를 따르지 않을 때 사용합니다. 어떤 스케일링 방법을 사용할지는 데이터의 분포와 모델의 성격에 따라 다르며, 실험을 통해 비교하여 최적의 방법을 찾는 것이 좋습니다.