고객 대출등급 분류 AI 해커톤

[Private 1위] Stacking(ET+XGB+DT+RF)

2024.02.07 17:52 1,501 조회 language

시각화는 다른 분들이 충분히 올려주셨기에 생략하고,
성능 개선에 도움을 주었던 4가지 요소들을 중심으로 설명하도록 하겠습니다.

1. 파생변수 생성
- EDA를 통해 '총상환원금', '총상환이자'가 주요한 영향을 미치는 것을 파악했고, 두 변수의 결합('총상환원금'/'총상환이자')으로 파생변수를 생성했습니다.
- 신용점수 평가 기준을 찾아보니 상환능력이 중요한 것 같더군요. 따라서, '총상환원금'/'대출금액'으로 '상환비율' 변수를 생성했습니다.
- 두 변수 생성 이후, 0.83에서 0.951로 점수가 가장 큰 폭으로 상승했습니다.

2.  변수 제거 (RFECV, Feature Importance)
- Feature Importance를 찍어보니 값이 0에 가까운 변수들이 몇 개 있어서 아예 제거하기로 했습니다.
- 변수 선택법인 RFECV를 활용, 변수를 3개로 줄였습니다. ('대출기간', '총상환원금/총상환이자', '상환비율')
- 이 방법으로 0.02 정도 점수가 오른 것 같습니다.

3. 하이퍼파라미터 튜닝 (Optuna)
- 튜닝 전, 성능이 괜찮게 나왔던 ET, RF, DT, XGB 총 4가지 모델들에 대해 튜닝을 진행했습니다.
- XGB의 경우 tree_method에 따라 점수가 많이 달라지는 것을 확인해 튜닝 작업에 추가했습니다.
- 튜닝 이후, 0.951에서 0.953으로 점수가 상승했습니다.

4. 앙상블 모델 (Stacking)
- Voting과 Stacking, 그리고 여러 모델끼리 조합을 해보면서 가장 성능이 좋은 조합을 찾아갔습니다.
- Stacking(ET+XGB+DT+RF)을 사용한 결과, 0.953에서 0.955로 점수가 증가해 최종 모델로 선정했습니다.

궁금한 사항 있으면 댓글 남겨주세요!
감사합니다.

코드
로그인이 필요합니다
0 / 1000
YOUSEONG
2024.02.13 16:26

상환능력은 생각하지 못했던 파생변수였네요.

간결한 브리핑이어서 좋았습니다.

하늘아덤벼라
2024.02.21 13:50

각 모델의 하이퍼파라미터는 그리드서치로 완전 세세하게까지 튜닝을 반복해주신건가요?

드르렁
2024.02.21 23:57

하이퍼파라미터는 Optuna 라이브러리 이용해서 찾았습니다.

도비콘
2024.02.21 21:16

👍🏻👍🏻