HD현대 AI Challenge

알고리즘 | 채용 | 정형 | 조선해양 | 회귀 | MAE

  • moneyIcon Prize : 2,000만 원
  • 1,614명 마감

 

[Private 16th] Feature Engineering+AutoGluon+MLJAR

2023.11.06 12:33 2,194 Views language

대회 참가 후기 및 모델링 과정 공유

상위권과의 격차가 커서 궁금증이 많습니다. 상위권 참가자분들은 모델링을 어떻게 진행하셨는지 알고 싶네요. 고수분들의 수준에 도달하기란 정말 어렵습니다. 모든 참가자분들께 수고하셨다는 말씀을 드립니다.

대회 마지막 날 16등을 기록하고 본선 진출 실패로 판단하여 모델 가중치와 원본 소스 코드를 삭제했습니다. 따라서 이 글에는 Private Score를 재현할 수 있는 코드가 포함되어 있지 않습니다. 또한, 이것은 제가 처음 작성하는 코드 공유 글이라 부족한 부분이 있을 수 있습니다. 궁금한 점이 있으시면 댓글로 남겨주세요.

Feature Engineering 과정

- 날씨피처들의 결측치는 훈련데이터셋의 평균치로 치환하였습니다.
- 'SHIP_TYPE_CATEGORY', 'PORT_FULL(ARI_PO+ARI_CO)'에 대해 라벨 인코딩을 적용했습니다.
- 'ATA'에서 연도, 월, 일, 시간, 요일을 추출했습니다.
- 'SHIP_VOLUME', 'SHIP_PORT_RATIO', 'SHIP_AGE'의 특징을 추출했습니다.
- 데이터셋이 수정된 당시에 일정이 바빠 다양한 시도를 하지 못한 점이 아쉽습니다.

모델 훈련 과정

- 훈련 데이터셋에서 'CI_HOUR < 0.05'인 데이터는 0으로 처리했습니다.
- 라벨 0: 'CI_HOUR = 0', 라벨 1: 'CI_HOUR > 0'으로 라벨링 후, Autogluon을 이용해 분류 작업을 진행했습니다.
- 라벨 1 데이터에 대해 Autogluon(preset: best_quality)을 이용해 반복적으로 피처 엔지니어링을 수행하며 회귀 모델의 성능을 개선했습니다.
- 최종적으로 가장 낮은 MAE를 보인 피처들을 기반으로 MLJAR(mode: compete)에서 회귀 작업을 진행했습니다.

최종 제출

- MLJAR로 훈련된 회귀 모델로 테스트 데이터셋의 예측값을 산출했습니다. 또한 분류 모델로 라벨이 0인 데이터의 'CI_HOUR'를 0으로 치환했습니다.

Code