Feature Scaling¶
Age 와 Salary 는 같은 스케일이 아니다.¶
Age 는 27 ~ 50 Salary 는 40k ~ 90k
In [59]:
# 유클리디언 디스턴스로 오차를 줄여 나가는데, 하나의 변수는 오차가 크고, 하나의 변수는 오차가 작으면, 나중에 오차를 수정할때 편중되게 된다.
# 따라서 값의 레인지를 맞춰줘야 정확히 트레이닝 된다.
Feature Scaling 2가지 방법¶
- 표준화 : 평균을 기준으로 얼마나 떨어져 있느냐? 같은 기준으로 만드는 방법, 음수도 존재, 데이터의 최대최소값 모를때 사용.
- 정규화 : 0 ~ 1 사이로 맞추는 것. 데이터의 위치 비교가 가능, 데이터의 최대최소값 알떄 사용
In [74]:
from sklearn.preprocessing import StandardScaler, MinMaxScaler
In [77]:
# 1. Standardization ( 표준화 )
# X 용 피처 스케일링이 필요.
s_scaler_x = StandardScaler()
In [79]:
s_scaler.fit_transform( X )
Out[79]:
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 ]])
In [ ]:
# 2. Normalizing ( 정규화 )
# X용 스케일러
In [80]:
m_scaler_x = MinMaxScaler()
In [82]:
X = m_scaler_x.fit_transform( X )
In [84]:
# y도 피처 스케일링 해야 한다.
# 그러나, 현재 y 값은, 이미 0과 1로 되어있으므로, 피처스캐일링 할 필요 없다.
y
Out[84]:
array([0, 1, 0, 0, 1, 1, 0, 1])
In [ ]:
Dataset을 Training 용과 Test용으로 나눈다.¶
In [85]:
X
Out[85]:
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]])
In [86]:
y
Out[86]:
array([0, 1, 0, 0, 1, 1, 0, 1])
In [87]:
from sklearn.model_selection import train_test_split
In [90]:
# test_size= 0.2 트레인데이터 80 : 테스트데이터 20 로나눈것
# random_state = 3 값 고정을 위해
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= 0.2 , random_state= 3 )
In [92]:
X_train
Out[92]:
array([[1. , 0. , 0. , 0.34782609, 0.28571429], [0. , 1. , 0. , 1. , 1. ], [0. , 0. , 1. , 0.47826087, 0.37142857], [0. , 0. , 1. , 0. , 0. ], [1. , 0. , 0. , 0.73913043, 0.68571429], [0. , 1. , 0. , 0.13043478, 0.17142857]])
In [93]:
X_test
Out[93]:
array([[1. , 0. , 0. , 0.91304348, 0.88571429], [1. , 0. , 0. , 0.43478261, 0.54285714]])
In [94]:
y_train
Out[94]:
array([1, 0, 0, 1, 0, 0])
In [95]:
y_test
Out[95]:
array([1, 1])
'DataScience > MachineLearning' 카테고리의 다른 글
Machine 예측 모델 실습, 배포를 위한 저장 (0) | 2022.12.01 |
---|---|
Machine Multiple Linear Regression (0) | 2022.12.01 |
Machine [supervised{Prediction(Linear Regression)}] (0) | 2022.12.01 |
Machine 원핫 인코딩 (One Hot Encoding) (0) | 2022.12.01 |
Machine 레이블인코딩(Label Encoding) (0) | 2022.12.01 |