✅ 피처 스케일링 (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' 카테고리의 다른 글
python - concat 함수 (1) | 2024.10.22 |
---|---|
python upper, lower 함수시 유의사항 - str (0) | 2024.10.22 |
python unique 사용시 주의사항 (1) | 2024.10.22 |
python pandas 기초함수 apply (0) | 2024.10.21 |
데이터 전처리 - 데이터 인코딩 (Data Encoding) (0) | 2023.12.13 |