Recent Posts
Recent Comments
Link
Today
Total
12-30 00:21
관리 메뉴

Hippo's data

스케일링(Scaling) 본문

ML(Machine Learning)

스케일링(Scaling)

Hippo's data 2024. 1. 2. 16:23
728x90

오늘은 데이터 전처리 과정중 하나인 스케일링(Scaling)에 대해 알아보겠습니다

 

여러 변수에 있는 각 수치형 데이터는 상대적 크기에 따라서 모델 생성에 영향을 끼칠 수 있는데요 

쉬운 예시로 0~10의 값을 가지는 변수 A와 0~100의 값을 가지는 변수 B가 있을 때, 각 변수의 의미를 모르는 컴퓨터는 상대적으로 큰 숫자를 가지는 변수 B의 영향을 크게 반영합니다 

그러므로 변수간 상대적인 크기를 조정해야할 필요가 있는데요 이것이 바로 스케일링(Scaling)입니다!! 

 

1. 정규화(normalization)

-> 데이터의 범위를 0~1로 조정

 

X  = ( X_i(i번째 데이터) - X_min(X의 최솟값) ) / ( X_max(X의 최댓값) - X_min(X의 최솟값) )

 

<코드로 구현>

- 직접 계산 

df = (df - df.min()) / (df.max() - df.min())

 

- 사이킷런 패키지의 MinMaxScaler를 이용

from sklearn.preprocessing import MinMaxScaler    # 모듈 불러오기

scaler=MinMaxScaler()    # 스케일러 인스턴스 생성 

df[:]=scaler.fit_transform(df[:]) 

 

 

2. 표준화(Standardization)

# 정규화로도 번역됨 

-> 표준 정규분포로 변환(평균 = 0, 표준편차 = 1)

 

X  = ( X_i(i번째 데이터) - X_mean(X의 평균) ) /  X_sd(X의 표준편차)

 

<코드로 구현>

 -  직접 계산

df = (df - df.mean()) / df.std()

 

- 사이킷런 패키지의 StandardScaler를 이용

from sklearn.preprocessing import StandardScaler  # 모듈 불러오기

scaler=StandardScaler()  # 스케일러 인스턴스 생성 
df[:]=scaler.fit_transform(df[:])

 

 

# 두 용어 모두 정규화(normalization, Standardization) 로 번역되므로 헷갈리지 않도록 영어로 사용하는걸 추천한답

( + Regularization 과적합 막기위한 릿지, 라쏘 규제도 정규화로 번역된다)

728x90