분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
[Private 15th] xgboost + catboost ensemble
공동작성자
먼저 xgboost, catboost를 사용하였으며 train 시 school id를 사용한 Stratified Group 5fold를 사용했습니다.
두 모델을 majority hard voting하여 최종 예측을 산출하였으며 각 모델 학습 시 xgboost의 경우 10seed, catboost의 경우 5seed ensemble을 수행하였습니다.
threshold를 구할 때 "Test data의 상위 n% 비율이 1이 되도록 조정"하면 data leakage의 위험성이 있으므로 그 대신 oof validation을 통해 탐색&고정한 fixed final threshold를 사용하여 모델 별 예측을 수행하였습니다.
Google Colab Pro+ (Linux Ubuntu 기반 환경)에서 코드를 실행하였으며 requirements.txt는 다음과 같습니다.
numpy==2.0.2
pandas==2.2.2
scikit-learn==1.6.1
scipy==1.16.3
catboost==1.2.8
torch==2.9.0
optuna==4.6.0
tqdm==4.67.1
최신 Google Colab Kernal의 Pytorch에 기반한 패키지 버전들이 torch==2.10.0을 요구하여 requirements.txt와 맞지 않아 가끔 에러가 발생할 수 있지만, 이는 세션 재시작으로 간단하게 해결할 수 있습니다.
Seed를 최대한 고정하였지만 Catboost GPU train의 라이브러리 수준에서 생기는 통제 불가능 비결정성으로 몇개 정도 예측 결과가 달라질 수 있습니다. 수 차례의 자체 재현성 검증 결과 final submit 기준 1~2개의 예측 결과 차이가 발생할 수 있습니다. 재현 시 ipynb 파일에 기록된 log를 참고하여 주시기를 부탁드립니다.
실행&재현의 편리성을 위해 전체 코드가 들어 있는 레포지토리를 github link로 별도 첨부합니다.
https://github.com/knowin-kyeong/2026PredictingBDACompletion
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
직업정보제공사업 신고번호: J1204020250004
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io |
전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
👍