[Python] 데이터 전처리 (원-핫 인코딩, 표준화, 정규화)

2021. 5. 5. 15:56Python/문법

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