웹 광고 클릭률 예측 AI 경진대회

알고리즘 | 정형 | 시계열 | 분류 | 웹 로그 | AUC

  • moneyIcon 상금 : 인증서 + 데이스쿨
  • 931명 마감

 

[Private 9위 0.78724] TimeSeriesSplit + Catboost + Ensemble

공동작성자

stroke
2024.06.04 00:29 572 조회 language

[Summary]
1) Train Data Parquet 변환 작업
     - 메모리 2GB 핸들링 가능
2) Train Data UnderSampling 적용
     - 1:1 비율로 Class Imbalance 해결
3) 전처리 Null 값 ‘– 1’ 치환
     - Unseen 데이터 개념으로 일괄 ‘-1’ 치환
4) Feature Selection 으로 Feature Importance 적용
     - Catboost Feature Importance 이용 ➢ 중요도 하위 10개 피처 삭제
5) Object Encoding, Numeric Scaler 적용
     - Object Encoding ➢ Catboost Auto Category Encoder 적용
     - Numeric Scaler ➢ RobustScaler 적용
6) CV 전략 TimeSeriesSplit CV = 7 적용
     - 마지막 전체 데이터 학습 (Validation Data 없이 Train Data Full 이용) ➢ 성능 “급” 상승
7) Catboost Average Ensemble 제출 (Submit)
     - 모델 1위 ➢ Public LB : 0.7867984255 모델 2위 ➢ Public LB : 0.7867277523 모델 3위 ➢ Public LB : 0.7866333701
     - 최종 모델 Top 3 Average Ensemble 제출
      (최종 : Public LB: 0.7871031675, Private LB : 0.78724)
※ 아래 코드는 "모델 1" 대표 코드이며, 최종 submission file 3개를 Average Ensemble 한 결과 Private LB 9위 Score 임 (실험 내용 아래 장표 참조)
[소감]
최대한 로버스트한 모델을 만들기 위해서 노력하였습니다. 시계열 Lag 활용 못한 부분, 메모리 부족으로 Optuna 실패 부분 살짝 아쉬움이 있네요 ㅎㅎ 한달 동안 고생하셨습니다 :)

PDF
코드