hyperopt를 이용한 하이퍼파라미터 튜닝
615
4 asked
선생님, 안녕하세요. hyperopt 파트 공부하다가 의문점이 있어서 글을 남깁니다.
page. 264 코드에서 xgb_clf = XGBClassifier()로 모델을 선언하는 부분에서 eval_metric='logloss'를 넣는 이유가 궁금합니다. eval_metric='logloss'를 안쓰고 나머지 코드만 돌려도 잘돌아가고, 뒤에 산탄데르 실습 page 272에서는 eval_metric='auc'를 안쓴걸로 확인이 되는데
이전에 xgboost 버전 업그레이드 전 warning 메시지를 없애기 위해서 넣은것 같다고 생각을 하고있습니다. 현 버전에는 모델 선언시 eval_metric를 안써도 잘 돌아가는데
제가 생각하는게 맞는건가요?
Answer 1
0
안녕하십니까,
eval_metric을 넣은 이유는 검증 데이터에 evaluation(평가)를 iteration 별로 수행하면서 evaluation 지표가 좋아지는 방향성으로 XGBoost가 최적으로 학습시키기 위해서 입니다.
XGBClassifier에서는 logloss와 auc만 evaluation metric으로 지원이 되는데,
위스콘신 암 데이터로는 정확도 평가 지표 최적화를 진행하려는데 정확도는 eval_metric이 지원되지 않아서 log_loss를 적용한 것이고, 산탄데르는 roc auc 평가 지표 최적화를 위해서 eval_metric으로 auc를 적용하였습니다.
책의 page 272에는 eval_metric을 기재하는 부분이 없습니다. 273 page를 보시면 xgb_clf.fit()에서 eval_metric을 auc로 적용합니다.
그리고 아마 개정판 책이 나올 시점은 Xgboost는 말씀하신 대로 eval_metric에 logloss등을 지정하지 않으면 warning이 나왔던 걸로 기억합니다. 하지만 eval_metric은 상황이 허락한다면 명시해 주는 것이 좋습니다. XGBoost가 조금이라도 해당 eval_metric을 최적화 하는 방향성으로 학습을 진행하기 때문입니다.
감사합니다.
0
선생님, 답변 감사합니다.
그래도 잘 이해가 안가는데 cross_val_score는 early stopping이 지원되지 않아서, 산탄 데이터에서는 kfold로 적용후 fit을 할 때 early stopping을 사용하면서 평가지표로 eval_metric을 auc로 지정했습니다. 그러면 검증 데이터를 iteration 별로 확인이 가능하고
앞 실습에서 위스콘신 암 데이터는 cross_val_score를 사용함으로써 검증 데이터 iteration별로 확인이 불가능한데 굳이 page. 264 코드에서 xgb_clf = XGBClassifier()로 모델을 선언하는 부분에서 eval_metric='logloss'을 넣는지 궁금합니다(산탄 데이터의 경우 모델 선언시 eval_metric 코드 안쓰고, fit()을 할 때 eval_metric 지정). 검증 데이터 이터레이션 별로 확인이 불가능한데 넣는 이유가 있나요? 물론 cross_val_score로 학습데이터로 다시 학습, 검증으로 데이터가 나눠지긴 하는데 cross_val_score는 조기중단 기능이 없는데...
선생님 답변이 이해가 갈랑 말랑합니다 ,죄송합니다
0
굳이 page. 264 코드에서 xgb_clf = XGBClassifier()로 모델을 선언하는 부분에서 eval_metric='logloss'을 넣는지 궁금합니다
=> cross_val_score()사용시 eval_metric을 안넣으셔도 됩니다. 다만 보통은 cross_val_score() 방식 보다는 eval_metric을 활용하기 위해 kfold 방식으로 적용하는게 보다 더 일반적입니다. 굳이 cross_val_score냐 kfold냐에 따라 eval_metric을 넣느냐 마느냐를 구분할 필요는 없을 것 같습니다만, 가능하다면 eval_metric을 넣어주시면 좋을 것 같습니다.
안녕하세요 열심히 수강중인 학생입니다
0
63
2
정수 인덱싱
0
68
2
넘파이 오류
0
85
2
11강 numpy의 axis 축 질문 드립니다.
0
85
2
Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.
0
79
2
Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.
0
70
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
75
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
64
2
5강 강의 오류가 있어요.
0
84
1
실무에서 LTV 관련 모델 선택 질문입니다!
0
72
2
14강 강의 듣는중에 궁금한게 있어서 질문합니다~
0
69
3
파이썬 다운그레이 후 사이킷런 재설치
0
117
2
좋은 강의 감사합니다.
0
72
2
scoring 함수 음수값
0
67
2
6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?
0
100
2
분류 평가 정확도 예측
0
77
2
안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.
0
99
1
카카오톡 채널 있나요
0
107
1
혹시 강의에서 사용하시는 ppt 받을 수 있는건가요
0
190
2
pca 스케일링 관련하여 질문드립니다.
0
100
2
주피터 대신 구글 코랩
0
172
2
강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?
0
148
2
실루엣 스코어..
0
86
2
float64 null 값 처리 방법
0
103
2

