신용카드 사용자 연체 예측 AI 경진대회

하이퍼파라미터 튜닝을 쉽고 빠르게 하는 방법

2021.05.19 13:36 8,048 Views language

대회 막바지라 다들 하이퍼파라미터 튜닝 작업을 많이 하실 것 같습니다.
하이퍼파라미터 튜닝 중에서 도움이 되는 라이브러리가 있어서 소개해드리고자 합니다.
Optuna라는 라이브러리 인데요. Kaggle Competition에 많은 유저들이 사용하고 있습니다.
이 노트북을 보시고 도움이 되셨다면 upvoting 부탁드려요 ㅎㅎ
노트북은 Kaggle노트북 환경에서 작성하였습니다.

Code
뿌더콜리
2021.05.20 11:28

삭제된 댓글입니다

anjunyong
2021.05.20 11:11

모델에 파라미터 적용 후 predict_proba(test)  하시면..

오리날다
2021.05.23 18:53

어렵고 쉬운 좋은 글이네요 업보팅은 레딧인가요ㅋㅋㅋ

dswook
2021.05.23 23:21

ㅋㅋㅋ감사합니다

Jung chanyoung
2021.05.23 23:19

이걸 지금 보다니.. 감사합니다

dswook
2021.05.23 23:20

킵고잉입니다ㅎㅎ

AIBoo
2021.05.24 15:21

와 이런게 있었다니 감사합니다!!

dswook
2021.05.24 15:50

도움이 되셨으면 좋겠습니다.ㅎㅎㅎ

huniLee
2021.06.14 15:55

코드 감사합니다!!  튜닝과정에서 하나 질문이 있는데요~
study = optuna.create_study(
    study_name="lgbm_parameter_opt",
    direction="minimize" 

위 코드에서 direction의 의미가 무엇을 말하는 것인지 알 수 있을까요...???
minimize와 maximize를 어떤 경우에 해야할지 잘 모르겠어서요ㅠㅠ

GYU CHEOL CHOI
2021.06.15 01:40

이건 제가 찾아보지 않아서 추측인데, 아마 loss를 최소화하는 방향으로 최적화 시킬 것이냐, 아니면 최대화하는 방향으로 최적화 시킬 것이냐 일겁니다.
보통은 minimize가 맞고, 예를 들어 ROC_AUC같은 경우는 maximize하는 경우도 있을 것 같네요.

dswook
2021.06.17 19:41

안녕하세요 holicgunner님께서 말씀하신게 맞습니다. 즉 평가지표에 따라서 direction하는 부분이 다릅니다. 예를들어 logloss는 최소화 시켜주는 방향으로 하이퍼파라미터튜닝을 해야 좋은 모델이므로 direction="minimize"로 설정해주면 됩니다. 반면 accuracy라든지 roc-auc 같은 경우는 최대화 시켜주는 방향으로 하이퍼파라미터튜닝을 해야 하므로 direction="maximize"로 설정해주는 것이 맞습니다. 다른 대회도 평가 지표를 잘 이해해서 코드를 활용하시면 될 것 같습니다.

영컬티
2021.12.21 18:37

좋은 글 감사합니다 😊 

dswook
2021.12.22 14:35

감사합니다!

웅형과함께라면
2022.01.19 16:49

많이 늦은 답글이지만 하나 질문해도 괜찮을까요~? 현재 accuracy를 평가 지표로 사용하고 있기 때문에 direction을 maximize로 설정을 해두었는데 (참고로 모델은 catboost)입니다. learning되어 가는 결과값들이 밑에나오는데 실행이 반복될때마다 best 값이 0.69 -> 0.65 -> 0.61 이런식으로  줄어들고있습니다. 제가 이해가지 않는부분은 maximize이면 best score값들이 점점 올라가야하는데 점점떨어지는게 이해가 가지 않아서요! 궁금해서 여쭤봅니다! 

dswook
2022.01.20 08:05

Catboost의 loss함수 파라미터 설정을 logloss로 하셨기때문입니다 분류문제를 풀때 기본 디폴트함수가 logloss이기 때문에 당연히 학습할때 수치가 감소되어야 학습이 잘되는것입니다 다만 optuna의 결과값을 accuracy로 잡으셨다면 정상적으로 작동할겁니다

로그인이 필요합니다
0 / 1000