Debt Default Prediction Hackathon: Spot the Signs of Default!

Dacon Hackathon | Algorithm | Tabular | Classification | Finance | ROC-AUC

  • moneyIcon Prize : DASCHOOL Pro Subscription
  • 2025.02.03 ~ 2025.03.31 09:59 + Google Calendar
  • 1,066 Users Completed

 

[Private 14, 0.64796] LGBM + Cat boost Ensemble & 파생변수 생성

2025.03.31 11:00 561 Views language

다들 대회 동안 고생하셨습니다.
저는 LGBM + Cat boost Ensemble 기법을 사용하였습니다. 

그리고 '연소득' 컬럼을 통해서 '월 소득' 그리고 '월 소득' - '상환 부채액' = '잔여 월 소득' 이라는 파생 변수를 생성하였습니다. 

그리고 데이터의 왜도(Skewness)를 극복하기 위해서 제곱근 변환과 Box-Cox를 사용해보았습니다. 

Code
Login Required
0 / 1000
로봇생성기
2025.03.31 13:05

대회 수고하셨습니다. 코드를 보니 대체적으로 사람들의 접근법은 유사한거 같습니다.
저도 왜도를 정규분포로 모아주기 위해 각 제곱근, 로그, 박스콕스, 얀, 등등 각 변수에 알맞은 트랜스폼으로 최대한 옮겨줬습니다.
개인적으로 범주혀을 원핫 인코딩을 해주는게 정답인거 같습니다. 저는 하지 않았지만 범주의 수도 적고 근속연수를 제외하면 다 순위와 서열의 의미 부여를 안해주는것이 좋아 보이네요.. 사실 저도 귀찮아서 레이블 인코딩하긴했는데

변수 선택은 저같은 경우 모델에서 변수 중요도가 낮은 거 부터 하나씩 뺴보면서 정확도를 측정했었느데 그냥 히트맵에서 저렇게 낮은거 뭉텅이로 뺴볼걸 그랬네요.

모델 같은 경우 그냥 빠른 실험을 위해 xgb를 섰는데 라이트가 잘 나오긴 하더라구요.

파생변수의 생성은 저걸로만 한 이유가 따로 있는지 궁금합니다. 저같은경우 좀 많이 만들어봤거든요 성과는 없었지만, 다른 사람들은 파생 변수를 만드는 기준이 궁금합니다;. 저는 모델 변수중요도 혹은 상관계수를 참고하여 만드는 거 같습니다.

Muns
2025.03.31 13:40

일단, 거의 최종적으로 컬럼 Drop까지 갔을 경우 성능의 상승은 더 이상 불가능할 것 같다는 판단을 하였습니다. 그래서 이상치에 대한 전처리 그리고 파생변수를 고려하고 있었는 데, 마침 '연 소득'과 '월 상환 부채액'이라는 두 컬럼이 보여서 이를 어떻게 활용할지 생각하다가 연소득을 12로 나눠서 월 소득으로 변형하고 이후에 월 상환 부채액을 빼는 작업을 수행해보았습니다.  

 저는 모델 변수 중요도를 따질 때, 상관계수는 참고만 하고 학습 이후에 Feature Importance라는 것을 이용하여 학습에 덜 사용된 컬럼을 제거하는 방법을 사용합니다. 물론 여기도 어느 정도 Drop을 하면 한계가 있기 때문에 파생 변수를 생각하게 되었습니다.