분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
수료 예측 코드공유
공동작성자
판다스와 넘파이로 데이터를 다루고, 사이킷런에서 데이터 분리와 평가 지표를 불러왔다. 모델은 LightGBM을 사용했는데, 범주형 변수를 복잡하게 바꾸지 않아도 잘 처리할 수 있고, 빠르면서 성능도 안정적이어서 선택했다. 반복 횟수를 크게 잡아도 조기 종료를 걸면 자동으로 적절한 지점에서 멈추기 때문에 불필요하게 오래 학습하지 않고, 세밀하게 조정할 부담도 줄어든다.
데이터는 대회에서 준 train, test, 제출 파일을 불러왔다. 목표 변수 withdrawal은 y로 두고, 나머지 변수들은 X로 정리했다. 테스트 데이터도 같은 방식으로 ID를 제외해 구조를 맞췄다. 범주형 컬럼들은 레이블인코더로 변환했는데, 학습 데이터만 기준으로 하면 테스트에 새 값이 들어올 때 오류가 생길 수 있다. 그래서 학습과 테스트 데이터를 합쳐 인코더를 학습시키고, 다시 각각 변환하는 방식을 택했다. 이렇게 하면 안정적으로 처리할 수 있고 누락되는 값도 없어진다.
데이터 분할 단계에서는 무작위로 나누는 대신 층화를 적용해 수료와 이탈 비율이 학습과 검증에 비슷하게 유지되도록 했다. 모델 설정은 반복 횟수를 2000으로 넉넉히 주고, 학습률은 0.05로 낮췄다. 반복 수가 많아도 조기 종료가 있어서 실제로는 적절한 시점에서 멈춘다. 클래스 가중치를 균형으로 맞춰 적은 집단인 이탈자도 잘 잡히도록 했다. 학습 과정에서는 검증 데이터를 따로 지정해 손실값을 계속 확인했고, 50회 이상 개선이 없으면 자동으로 멈추게 했다.
검증이 끝난 뒤에는 확률을 단순히 0.5로 나누지 않고, 여러 기준값을 바꿔가며 f1 점수가 가장 높은 지점을 찾았다. 이렇게 하면 평가 방식에 가장 맞는 기준을 쓸 수 있다. 마지막으로 학습과 검증 데이터를 합쳐 최종 모델을 다시 학습시키고, 테스트 데이터에 적용했다. 예측 확률은 아까 찾은 기준값으로 변환해 제출 형식에 맞게 저장했다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
직업정보제공사업 신고번호: J1204020250004
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io |
전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved