4. 데이터 표준화 - 피쳐스케일링
앞의 데이터를 무시하고도
나이의 최소값~최대값은 아무리 좋게 봐줘도
0~150을 넘길수가 없는 반면
연봉의 최소값~최대값의 크기는
데이터의 수치로만해도 40k~90k 인데
값을 어느정도 표준화,정규화 시켜줄 필요가 있다
그래야 정확히 학습이 되기 때문
피쳐스케일링 할때에는 X용과 Y용으로 따로 따로 준비한다
하지만 이 경우에서의 Y는 0과 1이 전부이기때문에 따로 할 필요는 없다
4 - 1. 표준화
X_scaler = StandardScaler()
X_scaler.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 ]])
4 - 2. 정규화
X_scaler = MinMaxScaler()
X = X_scaler.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]])
5. Dataset을 Training 용과 Test용으로 나눈다
이제 준비가 다 끝났다 하지만,
주어진 데이터 모두를 학습으로 시킨다면
예측을 실험해봤을때 예측값이 얼마나 정확한지 알 길이 없으므로
학습할 용도로 80%정도, 예측을 실험할 용도로 20%정도 나눠놓는것이 좋다
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=32 )
훈련용과 테스트용을 쪼개줄 모듈을 임포트 해준뒤
파라미터 안에
X, y 를 넣어주고
test_size=0.2 테스트용으로 남길것을 20%를 남기라고 입력한다
random_state=32 그리고 이것은 저번에 랜덤 시드와 같은 기능이다 같은 숫자를 입력하면 같은 랜덤값을 얻을수 있다
그렇게 쪼개지는것들을
순서대로
X_train, X_test, y_train, y_test
에 저장한다
X_train
array([[1. , 0. , 0. , 0.73913043, 0.68571429],
[0. , 1. , 0. , 0.13043478, 0.17142857],
[1. , 0. , 0. , 0.34782609, 0.28571429],
[1. , 0. , 0. , 0.91304348, 0.88571429],
[0. , 0. , 1. , 0.47826087, 0.37142857],
[1. , 0. , 0. , 0.43478261, 0.54285714]])
y_train
array([0, 0, 1, 1, 0, 1])
그렇게 훈련용의 데이터와
X_test
array([[0., 1., 0., 1., 1.],
[0., 0., 1., 0., 0.]])
y_test
array([0, 1])
테스트용의 데이터를 얻게되었다
'Python > MachineLearning' 카테고리의 다른 글
Regression 2) Error, MSE, RMSE (0) | 2024.04.13 |
---|---|
Regression 1) .coef_ , .intercept_ , .predict( ) (0) | 2024.04.13 |
Regression - Data Preprocessing (2) 문자열의 데이터처리( Label Encoding, One Hot Encoding) (0) | 2024.04.13 |
Regression - Data Preprocessing (1) - Nan처리, X와y의 데이터 분류 (0) | 2024.04.12 |
머신 러닝이란? - 기초 개념 (0) | 2024.04.12 |