[Python] sklearn.preprocessing (스케일링)
※ preprocessing
■ MinMaxScaler (Min Max 스케일링)
- 데이터 feature의 값을 특정 범위로 변환하기 위한 라이브러리
- default는 각 feature의 값을 0과 1사이로 변환함
□ 라이브러리 호출
> from sklearn.preprocessing import MinMaxScaler
□ Min-Max Scaling
- parameter
- feature_range: 변환할 범위
- attribute
- .fit(): 변수별 통계량을 계산하여 저장
- min-max-scaler: 최대값 및 최소값
- standard-scaler: 평균 및 표준편차
- .transform(): 변수별 통계량을 바탕으로 스케일링 수행
- .inverse_transform(): 스케일링된 값을 다시 원래 값으로 변환
- .fit(): 변수별 통계량을 계산하여 저장
# 기본 구조
# 인스턴스화
> scaler = MinMaxScaler(feature_range = (0, 1), ...)
# 모델 학습
> scaler.fit(X_train)
# 데이터 변환
> X_train_scaling = scaler.transform(X_train)
# e.g.
# 각 컬럼별 범위 확인
# 범위가 너무 차이가 나, 스케일링 필요
> Train_X.max() - Train_X.min()
A 0.394
B 0.423
C 133.000
D 215.000
...
# 스케일링
> scaler = MinMaxScaler() # 인스턴스화
> scaler.fit(X_train) # 모델 학습
> X_train_scaling = scaler.transform(X_train) # 데이터 변환
# 다시 Data Frame형태로 변환
> X_train_scaling = pd.DataFrame(X_train_scaling, columns = X_train.columns)
# 스케일링 전/후 비교
> X_train
A B C D
246 0.307 0.357 110 203
49 0.194 0.270 8 28
...
> X_train_scaling
A B C D
0 0.619289 0.695035 0.827068 0.939535
1 0.332487 0.489362 0.060150 0.125581
...
■ StandardScaler (표준화 스케일링)
- 데이터를 표준화하는 라이브러리
- 데이터의 평균을 0, 표준편차를 1로 변환함
□ 라이브러리 호출
> from sklearn.preprocessing import StandardScaler
# 기본 구조
# 인스턴스화
> scaler = StandardScaler()
# 모델 학습
> scaler.fit(X_train)
# 데이터 변환
> X_train_scaling = scaler.transform(X_train)
> X_test_scaling = scaler.transform(X_test)
댓글남기기