제주도 도로 교통량 예측 AI 경진대회

알고리즘 | 정형 | 교통 | 회귀 | MAE

  • moneyIcon 상금 : 500만원
  • 2,176명 마감

 

Private 3.08939 - LGBM + Catboost + HGB Ensemble

공동작성자

stroke
2022.11.17 16:26 4,381 조회 language

안녕하세요.
홍콩중문대 팀 입니다.
저희는 LGBM, Catboost, HGB 모델을 사용하였습니다.
저희 팀의 EDA는 팀원인 pgon8523님이 공유해 놓은 것을 참고해 주시면 감사하겠습니다.
EDA 링크:
https://dacon.io/competitions/official/235985/codeshare/6856?page=1&dtype=recent

저희가 중점적으로 생각한 점들은 아래와 같습니다.
1. 도로명
데이터의 양이 방대하고 도로의 종류도 다양하기 때문에 도로명별로 모델링을 하여 훈련시켰습니다.
train 데이터에서 '-'로 명시되어 있는 도로명들은 시작 지점, 끝 지점을 사용 및 구글 맵을 보고 도로명을 새로 지정해주었습니다.
clustering 기법 및 node들을 사용한 방법을 모두 사용해 보았는데 위와 같은 방식이 성능이 제일 좋았습니다.
단순 도로명으로 하기보다는 같은 도로에도 여러 구간으로 나눠질 수 있는 사실을 인지하여 도로명+시작 지점+끝 지점을 합쳐 각각 모델링 하였습니다.
2. 파생 변수 생성
여러 변수들을 Drop하고 나니 변수의 개수가 많지 않아서 새로운 파생 변수들을 생성하는 것에 초점을 두었습니다.
도로이름, 월, 시간 feature들을 여러 방법으로 합쳐 평균치를 파생 변수로 사용하였습니다.
데이터가 시계열 특성을 가진다는 점을 인지하여 시계열 파생 변수를 생성하였습니다.
3. 사후처리
각 도로별 최소, 최대값을 벗어나는 예측치들은 최소, 최대값으로 바꿔주었습니다.
train 데이터의 target 값이 모두 정수라는 점을 인지하여 예측값도 반올림하여 점수를 향상시켰습니다.
소수점이 3~7 사이인 예측치들은 잘못 반올림시 오히려 점수가 떨어지는 역효과가 생길 가능성을 생각하여 반올림시키지 않았습니다.
4. Ensemble
Ensembe 모델 생성뿐만 아니라 비슷한 성능을 가진 변수들을 바꿔가며 비슷한 성능의 모델들을 여러 개 생성 후에 다 합친 결과의 평균치를 제출하였습니다.

PDF
코드