-
Machine Learning 실습 (13)Machine Learning 2022. 7. 15. 09:07
4.8 모델 선택 및 학습
from sklearn.tree import DecisionTreeClassifier # 분류 예측기 from sklearn.model_selection import cross_val_score # 교차검증 도구
# 교차 검증 - tree 모델의 성능은 어느정도 될지 확인 방법 # 일반화 성능 측정 tree_model = DecisionTreeClassifier() # max_depth 모델의 깊이 설정 # 모델의 깊이가 깊어지면 규칙이 많아짐 -> 모델이 복잡해짐 # train 에 대한 성능은 좋을 수 있지만, test에 대한 성능 떨어질 확률이 높음 # => 과대적합 # train 에 대한 성능도 떨어지고, test 에 대한 성능도 현저히 떨어질 확률이 높음 # => 과소적합 # 머신러닝의 궁극적인 목표 # 과대, 과소가 아닌 일반화 학습이 잘된 모델을 찾는 것 => 일반화 모델
# 100%(1.0) 다맞춤 # 0.0 못맞춤 # 교차 검증 횟수 cv result = cross_val_score(tree_model,X_train,y_train,cv=5) print("결과 : ",result) print('평균 : ',result.mean())
# tree모델 정의 tree_model = DecisionTreeClassifier(max_depth = 5)
result2 = cross_val_score(tree_model,X_train,y_train,cv=5) print("결과 : ",result2) print('평균 : ',result2.mean())
4.8.1 학습
# fit() 모델 학습 # 데이터에 맞춰서 모델이 학습함 tree_model.fit(X_train, y_train) # X 대문자 쓴 이유 : 컬럼의 개수가 많음 # y 소문자 쓴 이유 : 컬럼 1개
4.9 모델 예측 및 평가 (kaggle 업로드)
# test가 있을 때 평가하는 방법 # tree_model.score(X_test, y_test) # 분류 성능평가 지표 - accuracy 정확도 # from sklearn.matrics import accuracy_score # 정확도 도구 # accuracy_score(pred, y_test) # 분류 성능평가 지표 - accuracy 정확도 pre = tree_model.predict(X_test) pre
4.9.1 답안지 파일 불러오기
result = pd.read_csv('./titanic/gender_submission.csv') result['Survived'] = pre
# csv 파일로 저장 result.to_csv('./titanic/submission01.csv', index = False)
# 과대적합을 제어하는 방법 # 1. 모델 측면 - max_depth (하이퍼 파라미터 : 사용자 정의 매개변수) 변경 # 2. 데이터를 다시 만지는 방법(답 레이블의 다양성 유지, 새로운 컬럼 추가(특성공학))
'Machine Learning' 카테고리의 다른 글
Machine Learning 실습 (15) (0) 2022.07.18 Machine Learning 실습 (14) (0) 2022.07.18 Machine Learning 실습 (12) (0) 2022.07.14 Machine Learning 실습 (11) (0) 2022.07.14 Machine Learning 실습 (10) (0) 2022.07.14