분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
하이퍼파라미터 튜닝을 쉽고 빠르게 하는 방법
대회 막바지라 다들 하이퍼파라미터 튜닝 작업을 많이 하실 것 같습니다.
하이퍼파라미터 튜닝 중에서 도움이 되는 라이브러리가 있어서 소개해드리고자 합니다.
Optuna라는 라이브러리 인데요. Kaggle Competition에 많은 유저들이 사용하고 있습니다.
이 노트북을 보시고 도움이 되셨다면 upvoting 부탁드려요 ㅎㅎ
노트북은 Kaggle노트북 환경에서 작성하였습니다.
모델에 파라미터 적용 후 predict_proba(test) 하시면..
어렵고 쉬운 좋은 글이네요 업보팅은 레딧인가요ㅋㅋㅋ
ㅋㅋㅋ감사합니다
이걸 지금 보다니.. 감사합니다
킵고잉입니다ㅎㅎ
와 이런게 있었다니 감사합니다!!
도움이 되셨으면 좋겠습니다.ㅎㅎㅎ
코드 감사합니다!! 튜닝과정에서 하나 질문이 있는데요~
study = optuna.create_study(
study_name="lgbm_parameter_opt",
direction="minimize"
위 코드에서 direction의 의미가 무엇을 말하는 것인지 알 수 있을까요...???
minimize와 maximize를 어떤 경우에 해야할지 잘 모르겠어서요ㅠㅠ
이건 제가 찾아보지 않아서 추측인데, 아마 loss를 최소화하는 방향으로 최적화 시킬 것이냐, 아니면 최대화하는 방향으로 최적화 시킬 것이냐 일겁니다.
보통은 minimize가 맞고, 예를 들어 ROC_AUC같은 경우는 maximize하는 경우도 있을 것 같네요.
안녕하세요 holicgunner님께서 말씀하신게 맞습니다. 즉 평가지표에 따라서 direction하는 부분이 다릅니다. 예를들어 logloss는 최소화 시켜주는 방향으로 하이퍼파라미터튜닝을 해야 좋은 모델이므로 direction="minimize"로 설정해주면 됩니다. 반면 accuracy라든지 roc-auc 같은 경우는 최대화 시켜주는 방향으로 하이퍼파라미터튜닝을 해야 하므로 direction="maximize"로 설정해주는 것이 맞습니다. 다른 대회도 평가 지표를 잘 이해해서 코드를 활용하시면 될 것 같습니다.
좋은 글 감사합니다 😊
감사합니다!
많이 늦은 답글이지만 하나 질문해도 괜찮을까요~? 현재 accuracy를 평가 지표로 사용하고 있기 때문에 direction을 maximize로 설정을 해두었는데 (참고로 모델은 catboost)입니다. learning되어 가는 결과값들이 밑에나오는데 실행이 반복될때마다 best 값이 0.69 -> 0.65 -> 0.61 이런식으로 줄어들고있습니다. 제가 이해가지 않는부분은 maximize이면 best score값들이 점점 올라가야하는데 점점떨어지는게 이해가 가지 않아서요! 궁금해서 여쭤봅니다!
Catboost의 loss함수 파라미터 설정을 logloss로 하셨기때문입니다 분류문제를 풀때 기본 디폴트함수가 logloss이기 때문에 당연히 학습할때 수치가 감소되어야 학습이 잘되는것입니다 다만 optuna의 결과값을 accuracy로 잡으셨다면 정상적으로 작동할겁니다
되게 좋은 코드네요! 혹시 XGBoost도 적용이 되는건가요?
네 물론입니다 구글링하면 코드 많으니까 참고하시면 될꺼같아요ㅎㅎ
optuna의 시각화 기능이 이렇게 많은지 몰랐네요! 감사합니다!
잘 활용하겠습니다. 감사합니다
기가맥히네여
공부에 도움 많이 되었습니다. 감사합니다!
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
삭제된 댓글입니다