[머신러닝] 4. 전처리(수치형데이터)

PurinYun·2023년 11월 23일
0

AIffel

목록 보기
20/75

표준화(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)는 데이터의 최솟값과 최댓값이 정해져 있거나 데이터가 정규분포를 따르지 않을 때 사용합니다. 어떤 스케일링 방법을 사용할지는 데이터의 분포와 모델의 성격에 따라 다르며, 실험을 통해 비교하여 최적의 방법을 찾는 것이 좋습니다.

profile
Fantivation

0개의 댓글