분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
[Private 4th] mean encoding + polynomial features + EBM
아쉽게도 입상 순위권에는 들지 못했지만, 공휴일이기도 하고 나름 좋은 경험이었기에 코드 공유를 하고 대회를 마무리하고자 합니다.
작업 환경은 google colab이며, 본 대회에서는 최대한 직관적이고 간단한 방식을 사용했습니다.
- 아이디어 설명
: train set의 target 분포는 0의 비율이 상당히 높았다. 이것을 test set에서도 일반화할 수 있는 것이 키일 것
: 몇 개의 카테고리에서 Income이 명확히 Income이 0인 부분을 찾았으나, 설명력이 높은 알고리즘으로 모델링해서 하드코딩을 줄여보자
(Income이 0인 카테고리를 explicit하게 명시해주는 것이 예측력엔 도움이 되겠으나, 현장이라면 모델만으로 예측 및 설명 문제를 해결할 수 있도록 해야한다. )
: 설명력이 높은 알고리즘은 MS에서 개발한 ExplainableBoostingMachine (EBM) / 참고 : https://interpret.ml/docs/ebm.html
: 최종 파이프라인은 '소득이 0일 확률을 예측하는 이진 분류 모델 a -> 소득 예측 모델 b -> a의 확률로 b의 결과 보정'
- 코드 설명
: Data Loading과 결측값 체크 / 타겟의 로그변환을 수행합니다. 로그변환 수행이유는 제출했을 때 성능이 더 나아서입니다.
: mean encoding을 통해 범주형 변수를 수치화합니다.
: EBM의 feature interaction의 degree를 1단계 더 높여주기 위해 polynomial feature를 만듭니다. 이 때 상관계수를 통해 불필요해보이는 피처는 drop합니다.
: 아이디어 설명과 같이 분류 모델을 만들고, 소득이 존재하는 sample로만 회귀 모델을 만들었습니다. 이 때 회귀 모델은 소득을 전반적으로 과대 추정할 것이므로,
이를 분류 모델의 예측 확률을 이용해 보정하여 최종 예측 결과를 생성합니다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved