피처 스케일은 데이터의 범위를 정규화 표준화 할때 사용하는 방법으로 지난 시간에 사용한적이 있지만 이번에 데이터 학습 전처리 과정으로 한번더 언급한다. 피처 스케일링을 하지 않으면 하나의 변수는 오차가 크고, 하나의 변수는 오차가 작으면, 나중에 오차를 수정할때 편중되게 된다.
우선 Standard 스케일러(표준화) 부터 알아보자
# Feature는 컬럼이라는 뜻
#하나의 변수는 오차가 크고, 하나의 변수는 오차가 작으면, 나중에 오차를 수정할때 편중되게 된다.
# 따라서 값의 레인지를 맞춰줘야 정확히 트레이닝 된다.
#스케일링 함수 import
from sklearn.preprocessing import StandardScaler,MinMaxScaler
#1. Standard 스케일러(표준화)
# X 용 피쳐 스케일링
s_scaler_x=StandardScaler()
s_scaler_x.fit_transform(X)
>>>array([[ 1. , -0.57735027, -0.57735027, 0.69985807, 0.58989097],
[-1. , -0.57735027, 1.73205081, -1.51364653, -1.50749915],
[-1. , 1.73205081, -0.57735027, -1.12302807, -0.98315162],
[-1. , -0.57735027, 1.73205081, -0.08137885, -0.37141284],
[ 1. , -0.57735027, -0.57735027, -0.47199731, -0.6335866 ],
[ 1. , -0.57735027, -0.57735027, 1.22068269, 1.20162976],
[-1. , 1.73205081, -0.57735027, 1.48109499, 1.55119478],
[ 1. , -0.57735027, -0.57735027, -0.211585 , 0.1529347 ]])
X값이 표준화 되어 출력된것을 알 수 있다.
두번째는 Normalizing (정규화) 이다.
#2.Normalizing (정규화)
#X 용 피쳐 스케일링
m_scaler_x =MinMaxScaler()
#정규화 데이터를 사용할꺼기 때문에 저장
X = m_scaler_x.fit_transform(X)
X
>>>array([[1. , 0. , 0. , 0.73913043, 0.68571429],
[0. , 0. , 1. , 0. , 0. ],
[0. , 1. , 0. , 0.13043478, 0.17142857],
[0. , 0. , 1. , 0.47826087, 0.37142857],
[1. , 0. , 0. , 0.34782609, 0.28571429],
[1. , 0. , 0. , 0.91304348, 0.88571429],
[0. , 1. , 0. , 1. , 1. ],
[1. , 0. , 0. , 0.43478261, 0.54285714]])
X가 0~1사이의 수로 바뀌어 저장된것을 알수 있다.
반응형
'머신러닝' 카테고리의 다른 글
머신러닝(7) Linear Regression으로 데이터 예측하기 (0) | 2022.12.01 |
---|---|
머신러닝(6) 데이터 전처리 종합 (0) | 2022.12.01 |
머신러닝(4) train,test 모델로 데이터 나누기 (0) | 2022.12.01 |
머신러닝(2) Supervised 러닝 Data Preprocessing과 카테고리컬 데이터 (0) | 2022.12.01 |
머신러닝(1) 머신러닝의 개요 (0) | 2022.12.01 |