[Python] 데이터 전처리 (원-핫 인코딩, 표준화, 정규화)
2021. 5. 5. 15:56ㆍPython/문법
Ver. Jupyter Notebook (Anaconda3)
▶ 판다스의 원핫 인코딩
- sklearn의 레이블 인코딩, 원-핫 인코딩 방식은 복잡함.
# padas의 get_dummies 함수를 이용하면 쉽게 원핫 인코딩 가능
>>> df = pd.DataFrame({'item':['TV','냉장고','전자렌지','컴퓨터','선풍기','선풍기','믹서','믹서'] })
>>> df
pd.get_dummies(df)
▶ 피처 스케일링과 정규화
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)
print('feature 들의 평균 값')
print(iris_df.mean())
print('\nfeature 들의 분산 값')
print(iris_df.var())
● Standard Scaler (표준화)
from sklearn.datasets import load_iris
import pandas as pd
from sklearn.preprocessing import StandardScaler
iris = load_iris()
iris_data = iris.data
iris_df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
# StandardScaler객체 생성
scaler = StandardScaler()
# StandardScaler 로 데이터 셋 변환 .fit( ) 과 .transform( ) 호출
scaler.fit(iris_df)
iris_scaled = scaler.transform(iris_df)
# transform( )시 scale 변환된 데이터 셋이 numpy ndarry로 반환되어 이를 DataFrame으로 변환
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())
iris_df_scaled
● MinMaxScaler (정규화)
from sklearn.datasets import load_iris
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
iris = load_iris()
iris_data = iris.data
iris_df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
# MinMaxcaler객체 생성
scaler = MinMaxScaler()
# MinMaxScaler 로 데이터 셋 변환 .fit() 과 .transform() 호출.
scaler.fit(iris_df)
iris_scaled = scaler.transform(iris_df)
# transform( )시 scale 변환된 데이터 셋이 numpy ndarry로 반환되어 이를 DataFrame으로 변환
iris_df_scaled = pd.DataFrame(data=iris_scaled, columns=iris.feature_names)
print('feature 들의 정규화 최소 값')
print(iris_df_scaled.min())
print('\nfeature 들의 정규화 최대 값')
print(iris_df_scaled.max())
iris_df_scaled
'Python > 문법' 카테고리의 다른 글
[python] 분류 (0) | 2021.05.07 |
---|---|
[python] 평가 (정확도, 오차행렬, 정밀도, 재현율) (0) | 2021.05.06 |
[python] 사이킷런으로 머신러닝 (0) | 2021.05.04 |
[python] numpy (0) | 2021.05.03 |
[python] crawler (0) | 2021.04.30 |