Hippo's data
스케일링(Scaling) 본문
오늘은 데이터 전처리 과정중 하나인 스케일링(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 과적합 막기위한 릿지, 라쏘 규제도 정규화로 번역된다)
'ML(Machine Learning)' 카테고리의 다른 글
모델 평가 - 분류(Classification) 모델 (0) | 2024.01.06 |
---|---|
변수 선택(Feature selection) - RFE/RFE-CV/UFS (1) | 2024.01.02 |
범주형 데이터 정제하기 - 범주형 인코딩(Categorical Encoding) (0) | 2023.12.31 |
이상치(outlier) 처리하기 (0) | 2023.12.28 |
결측치(missing values) 처리하기 (2) | 2023.12.20 |