본문 바로가기
python

데이터 전처리 - 피처 스케일링과 정규화

by jinny-log 2023. 12. 13.

✅ 피처 스케일링 (Feature Scaling)

  • 피처 스케일링은 머신러닝서 사용되는 feature 범위를 조정하는 과정.
  • 피처마다 다른 범위를 가지는 경우 머신러닝 알고리즘 성능에 이슈가 발생할 수 있음.
  • 피처의 범위가 다르다는 것의 예제는 어떤 제품의 가격(A)이 1원~1억원이고, 해당 제품의 수명(B)이 1년~10년일대. A는 범위가 1~1억, B는 1~10으로 range가 다름.

✅ 피처 스케일링은 왜 필요하나요?

  • 모델 성능 향상 : 일부 모델은 입력 데이터 간의 거리를 기반으로 동작하여, 피처 스케일 여부에 따라 예측에 영향을 미칠 수 있음.
  • 모델의 해석성 향상 : 스케일이 조절된 피처는 모델의 해석이 더 쉽습니다. 피처의 스케일을 일정하게 조절하면 어떤 피처가 더 중요한지를 더 쉽게 판단할 수 있습니다.

✅ 피처 스케일링 주요 기법

(1) Standard 표준화

  • 개별 피처를 평균이 0이고, 분산이 1인 값으로 변환하여 가우시안 정규분포(=정규분포)를 따를 수 있도록 데이터를 변환
  • 참고!
  • 특히 사이킷런에서 구현한 RBF 커널을 이용하는 서포트 벡터 머신이나 선형회귀, 로지스틱 회귀는 
  • 데이터가 가우시안 분포를 따른다는 가정하에 구현된 알고리즘으로 사전에 표준화 적용하는 것은 성능 향상 중요한 요소

(2) MinMaxScaler

  • 데이터 값을 0과 1사이의 범위 값으로 변환 (음수 값 있을 경우 -1~1로 변환)
  • 데이터가 가우시안 분포가 아닐 경우 MinMaxScaler 적용해볼 수 있음

 

✅ 피처 스케일링 실습 (1) Standard 

##환경셋팅
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)

##데이터 기술통계 확인 
iris_df.describe()

 

정규화

from sklearn.preprocessing import StandardScaler

##Standard 함수 생성
scaler=StandardScaler()

##StandardScaler함수로 데이터 정규화
scaler.fit(iris_df)
iris.scaler=scaler.transform(iris_df)

##transform함수 적용시 변환된 데이터 세트가 Numpy ndarray형식으로 dataframe화
iris_df_scaled=pd.DataFrame(data=iris.scaler,columns=iris.feature_names)

##scaler화 데이터 평균 및 표준편차 확인
print(iris_df_scaled.describe())

 

 

'python' 카테고리의 다른 글

데이터 전처리 - 데이터 인코딩 (Data Encoding)  (0) 2023.12.13