월간 데이콘 신용카드 사용자 연체 예측 AI 경진대회

알고리즘 | 정형 | 분류 | 금융 | LogLoss

  • moneyIcon Prize : 100만원
  • 3,627명 마감

 

[Private 5위 0.66203] | TYKIM | Catboost

2021.05.24 23:16 9,531 Views language

안녕하세요, 제 실력이 아직 많이 부족함에도 불구하고 운 좋게 수상했네요
제 코드의 요점은 특성 조합으로 '개인코드'를 생성한 것에 있습니다.
'개인코드'를 생성한 계기는, EDA간 동일한 인적 정보를 가진 데이터로 추정되는 값들을 여럿 발견하였을 때 입니다.
따라서 데이터에 중복된 여러 인물들이 존재하는 것으로 가정하고 학습을 진행하였습니다.
추가로 private 2등하신 dswook님께서 얼마 전 코드 공유를 해주셔서 알게 된 Optuna를 Catboost에 적용하여 마지막 파라미터 튜닝을 하였습니다. 마지막에 소중한 Score 상승을 얻을 수 있었습니다. dswook님 2등 축하드리고 또 코드 공유 감사드립니다. 

끝으로 이렇게 좋은 대회를 열어주고 계시는 데이콘 임직원분들에게 진심으로 감사드립니다. 이번 대회 뿐 아니라 데이콘 여러대회에도 참가하고 있는데 매 대회마다 너무 큰 도움이 되고 있습니다.

<코드 요약>
전처리 -> 고유코드 생성 -> Optuna로 best_parameter 추출 -> K-Fold + Cat Boost 훈련 -> Test 데이터셋 예측 -> 제출
(K-Fold 교차검증 코드에 Optuna를 바로 적용하려 했으나 Colab에서 메모리 문제인지 버티질 못해 따로 8:2 데이터셋을 구성해 Optuna에서 best parameter를 추출하고 다시 K-Fold + Cat Boost에 적용시켰습니다)

Code
로그인이 필요합니다
0 / 1000
zizzizziz
2021.05.24 23:47

안녕하세요! 이 코드를 보고 많은 생각이 드느데, 저도 이번 대회를 통해 머신러닝을 처음 접하게 되어 부족한 부분이 많았는데, 그 중 가장 어려웠던 부분이 전처리 하는 부분이였습니다. 고유코드를 만들으셔서 성능을 되게 높게 향상시키겼는데, 고유코드를 만들때, 사용할 피처 같은 것을 어떻게 결정하셨나요?

AIBoo
2021.05.25 00:43

안녕하세요 zizzizziz님, 
결정과정은 어떤 가설을 설정하고 시작하진 않았습니다. 그냥 이것도 넣어보고 저것도 넣어보고 또 EDA 다시해보고 이런 과정을 여러 번 거쳤습니다. 그렇게 하다가 보니 성별,직업,학력 등 범주형 특성 조합은 겹치는 경우가 많아 대신 생일,소득 등 수치형 특성으로 조합하여 구성하였습니다.  

dswook
2021.05.25 02:34

제 코드가 도움되었다니 영광입니다 축하드립니다ㅎㅎㅎ

jee_p0
2021.05.25 12:42

코드 공유 감사합니다. 항상 기본이 중요함을 대회가 지날수록 깨닫게 되네요. 감사합니다