군침이 싹 도는 코딩
피쳐 스케일링 본문

표준편차와 평균값으로 구하는 표준화(Standardisation)와
최대값 최소값으로 구하는 정규화(Normalisation)가있다
앞서 숫자로 모두 변환한 X,y를 가지고 피쳐 스케일링을 해보자
X
array([[1.0e+00, 0.0e+00, 0.0e+00, 4.4e+01, 7.2e+04],
[0.0e+00, 0.0e+00, 1.0e+00, 2.7e+01, 4.8e+04],
[0.0e+00, 1.0e+00, 0.0e+00, 3.0e+01, 5.4e+04],
[0.0e+00, 0.0e+00, 1.0e+00, 3.8e+01, 6.1e+04],
[1.0e+00, 0.0e+00, 0.0e+00, 3.5e+01, 5.8e+04],
[1.0e+00, 0.0e+00, 0.0e+00, 4.8e+01, 7.9e+04],
[0.0e+00, 1.0e+00, 0.0e+00, 5.0e+01, 8.3e+04],
[1.0e+00, 0.0e+00, 0.0e+00, 3.7e+01, 6.7e+04]])
y
array([0, 1, 0, 0, 1, 1, 0, 1])
1. Standardisation 을 이용해 X 용 피쳐 스케일링 만드는법
from sklearn.preprocessing import StandardScaler, MinMaxScaler
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 ]])
StandardScaler 와 MinMaxScaler 에 import 한다
스탠다드 스케일러를 변수 s_scaler_x 에 저장한 뒤
fit_transform을 통해 X를 변환한다
2. Normalizing 을 이용해 X 용 피쳐 스케일러 만드는법
m_scaler_x = MinMaxScaler()
m_scaler_x.fit_transform(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]])
MinMaxScaler를 변수 m_scaler_x로 저장한 뒤
fit_transform 으로 변환해준다
y도 피쳐 스케일링을 해야하지만 y값은 이미 0,1로 되어있기때문에
따로 피쳐 스케일링 할 필요가 없다.
'Python > Machine Learning' 카테고리의 다른 글
인공지능 학습 데이터 전처리중 nan 처리 방법 (replace) (0) | 2022.12.02 |
---|---|
Logistic Regression (0) | 2022.12.01 |
LinearRegression (1) | 2022.12.01 |
데이터셋을 트레이닝용과 테스트용으로 나누는법 (train_test_split) (0) | 2022.12.01 |
레이블 인코딩 / 원핫 인코딩 (0) | 2022.12.01 |