본문 바로가기
인공지능/데이터 분석

[사이킷런] 데이터 전처리 2. 피처스케일링

by julysein 2021. 8. 16.
728x90

표준화 (StandardScaler)

 

사이킷런에서는 표준화를 StandardScaler 함수를 통해 지원한다.이를 통해 개별 피처들을 평균이 0, 분산이 1인 값으로 변환해준다.

 

 

먼저 DataFrame 을 통해 데이터셋을 생성해준다.

from sklearn.datasets import load_iris
import pandas as pd

iris = load_iris()
iris_data = iris.data
iris_df = pd.DataFrame(data=iris_data, columns = iris.feature_names)

 

StandardScaler 을 이용하여 데이터 세트를 변환해 준다.

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
scaler.fit(iris_df)
iris_scaled=scaler.transform(iris_df)
iris_df_scaled = pd.DataFrame(data=iris_scaled, columns = iris.feature_names)


print('feature 들의 평균 값')
print(iris_df_scaled.mean())
print('\nfeature 들의 분산 값')
print(iris_df_scaled.var())

output

feature 들의 평균 값
sepal length (cm)   -1.690315e-15
sepal width (cm)    -1.842970e-15
petal length (cm)   -1.698641e-15
petal width (cm)    -1.409243e-15
dtype: float64

feature 들의 분산 값
sepal length (cm)    1.006711
sepal width (cm)     1.006711
petal length (cm)    1.006711
petal width (cm)     1.006711
dtype: float64

 

정규화(MinMaxScaler)

사이킷런에서는 정규화를 MinMaxScaler 함수를 통해 지원한다.이를 통해 데이터값을 0과 1 사이의 값으로 변환한다. (주로 데이터의 분포가 가우시안 분포가 아닐 경우에 사용됨)

 

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
scaler.fit(iris_df)
iris_scaled = scaler.transform(iris_df)

iris_df_scaled = pd.DataFrame(data=iris_scaled, column=iris.feature_names)
iris_df_scaled

output:

iris_df_scaled에 변환된 정보가 저장된다.

 

 

출처 : 파이썬 머신러닝 완벽 가이드

 

 

728x90