분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
[Private 14, 0.64796] LGBM + Cat boost Ensemble & 파생변수 생성
다들 대회 동안 고생하셨습니다.
저는 LGBM + Cat boost Ensemble 기법을 사용하였습니다.
그리고 '연소득' 컬럼을 통해서 '월 소득' 그리고 '월 소득' - '상환 부채액' = '잔여 월 소득' 이라는 파생 변수를 생성하였습니다.
그리고 데이터의 왜도(Skewness)를 극복하기 위해서 제곱근 변환과 Box-Cox를 사용해보았습니다.
일단, 거의 최종적으로 컬럼 Drop까지 갔을 경우 성능의 상승은 더 이상 불가능할 것 같다는 판단을 하였습니다. 그래서 이상치에 대한 전처리 그리고 파생변수를 고려하고 있었는 데, 마침 '연 소득'과 '월 상환 부채액'이라는 두 컬럼이 보여서 이를 어떻게 활용할지 생각하다가 연소득을 12로 나눠서 월 소득으로 변형하고 이후에 월 상환 부채액을 빼는 작업을 수행해보았습니다.
저는 모델 변수 중요도를 따질 때, 상관계수는 참고만 하고 학습 이후에 Feature Importance라는 것을 이용하여 학습에 덜 사용된 컬럼을 제거하는 방법을 사용합니다. 물론 여기도 어느 정도 Drop을 하면 한계가 있기 때문에 파생 변수를 생각하게 되었습니다.
DACON Co.,Ltd | CEO Kookjin Kim | 699-81-01021
Mail-order-sales Registration Number: 2021-서울영등포-1704
Business Providing Employment Information Number: J1204020250004
#901, Eunhaeng-ro 3, Yeongdeungpo-gu, Seoul 07237
E-mail dacon@dacon.io |
Tel. 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
대회 수고하셨습니다. 코드를 보니 대체적으로 사람들의 접근법은 유사한거 같습니다.
저도 왜도를 정규분포로 모아주기 위해 각 제곱근, 로그, 박스콕스, 얀, 등등 각 변수에 알맞은 트랜스폼으로 최대한 옮겨줬습니다.
개인적으로 범주혀을 원핫 인코딩을 해주는게 정답인거 같습니다. 저는 하지 않았지만 범주의 수도 적고 근속연수를 제외하면 다 순위와 서열의 의미 부여를 안해주는것이 좋아 보이네요.. 사실 저도 귀찮아서 레이블 인코딩하긴했는데
변수 선택은 저같은 경우 모델에서 변수 중요도가 낮은 거 부터 하나씩 뺴보면서 정확도를 측정했었느데 그냥 히트맵에서 저렇게 낮은거 뭉텅이로 뺴볼걸 그랬네요.
모델 같은 경우 그냥 빠른 실험을 위해 xgb를 섰는데 라이트가 잘 나오긴 하더라구요.
파생변수의 생성은 저걸로만 한 이유가 따로 있는지 궁금합니다. 저같은경우 좀 많이 만들어봤거든요 성과는 없었지만, 다른 사람들은 파생 변수를 만드는 기준이 궁금합니다;. 저는 모델 변수중요도 혹은 상관계수를 참고하여 만드는 거 같습니다.