데이터 세트 분리
데이터를 학습 데이터(train), 테스트 데이터로 분리한다.
왜? --> 전체 데이터 세트를 머신러닝 모델에 훈련시키고 다시 데이터에 예측을 시키면 어떻게 될까.
머신러닝 모델은 그 데이터를 이미 훈련 받았기 때문에 데이터에 대해 알고 있습니다.
그렇기 때문에 데이터 세트를 훈련 데이터 세트 / 테스트 데이터 세트 2개로 나누어서 해야됩니다.
나온 로직을 가지고 테스트 데이터 세트를 예측합니다.
이렇게 데이터 세트를 나누어서 해야 훈련받은 머신러닝 모델의 성능을 알 수 있습니다.
모델 학습 ( fit )
학습 데이터 ( X_train,y_train ) 를 기반으로 머신러닝 알고리즘을 적용해 모델을 학습 시킨다.
예측 수행 ( predict )
학습된 머신러닝 모델을 이용해 테스트 데이터로 예측합니다.
훈련 시켜서 나온 로직을 가지고
테스트 데이터 세트(X_test) 를 예측해서 나온 값과 실제 값인 y_test와 비교합니다.
쉽게 말해서, 머신러닝 모델이 X_train을 보고 결과값인 y_train을 보고 훈련에 들어갑니다. ( fit)
훈련을 받으면 데이터와 결과값을 보고 머신러닝이 그에대한 로직을 예측하게됩니다.
그렇게 훈련 끝에 나온 로직을 가지고
머신러닝 모델이 X_test를 봤을때 결과로 pred라는게 나올거다~ 라고 하면 그때 y_test와 비교해서
예측 성공률을 확인 하는것 입니다.
from sklearn.tree import DecisionTreeClassifider #결정트리
from sklearn.metrics import accuracy_score # 정확도 구하기
dt_clf = DecisionTreeClassfier()
dt_clf.fit(X_train, y_train) # X_train, y_train을 결정트리분류기로 학습시킨다.
pred = dt_clf.predict(X_test) # X_train, y_train을 훈련 받은걸 X_test를 예측해서 pred에 넣는다.
acc_result = accuracy_score(y_test, pred) #예측한 pred를 y_test와 비교해서 acc_result에 넣는다.
print("예측 스코어 : {:.4f}".format(acc_result)
평가 ( evaluate )
예측된 결과값과 테스트 데이터 ( test ) 의 실제 결과값을 비교해 머신러닝 모델 성능을 평가합니다.
'한국경제신문(toss bank)' 카테고리의 다른 글
데이터 전처리 ( Preprocessing ) (0) | 2024.08.01 |
---|---|
데이터 세트 훈련 교차 검증 (KFold, Stratified, cross_val_score,GridSearchCV) (0) | 2024.08.01 |
머신러닝 모델링 프로세스 iris dataset 활용 (0) | 2024.07.31 |
머신러닝 사이킷런 ( sklearn ) (0) | 2024.07.30 |
머신러닝의 유형 및 단점 (0) | 2024.07.29 |