데이콘 전기차 가격예측

지승훈·2025년 1월 30일
0

0. 프로젝트 개요

데이콘에서 진행하는 해커톤에 참여해 보았습니다.
ML 모델에 대해서는 다뤄본적이 많지 않아서 공부하는 겸해서 도전해보았습니다.

1. 데이터 로딩 및 EDA


7497 x 11로 구성.



배터리 용량 부분에서 결측치가 2700개 존재했습니다.

1.1 배터리 용량 칼럼 결측치 분석


배터리 용량이 가격과 보증기간과 중간정도(0.4~0.6)의 상관관계를 보이고 있습니다.


보증기간이 7년 전후로 배터리 용량의 차이가 벌어졌습니다.

1.2 배터리 용량 결측치 추가


본래는 결측치를 평균값으로 대체하여 진행하고 있었지만, 파생변수 생성 부분 이후 F score를 파악하던 중 배터리 용량이 상당히 중요한 feature로 작용하고 있다는점을 알았습니다.
그래서 평균값보다 정교하게 결측치를 다뤄야 겠다고 생각했습니다.

1.2.1 평균값 대체


7년을 기준으로 배터리 용량의 평균으로 추가했습니다.



그 다음 시각화를 진행해봤습니다.

배터리 용량 분포는 당연하게도 85부분과 63부분이 과밀집 되어있는것을 알게되었습니다.


1.2.2 Catboost 모델

catboost 사용이유

  • 범주형 변수 처리 용이함
  • 가벼움

📌 지금까지의 결론
제조사에 따라 배터리 용량의 차이가 크며, 일부 제조사(T사, W사)는 고용량 배터리를 주로 사용.
차량 상태에 따라 배터리 용량 차이가 확연함 (새 차가 확실히 높은 용량을 가짐).
보증기간이 길수록 배터리 용량이 높은 경향이 있지만, 예외적인 데이터도 있음.

1.2.3 Minmax scaler

2. 파생변수 생성

2.1 기술 성능 기반 변수

  • 에너지 효율 지수
df['에너지효율'] = df['주행거리(km)'] / df['배터리용량']  # 1kWh당 주행거리

의미: 배터리 용량 대비 실제 주행 성능
활용: 효율이 높을수록 프리미엄 가격 형성

3. 범주형 변수 인코딩 및 학습·테스트 데이터 분할

4. Optuna로 XGBoost 하이퍼파라미터 탐색

4.1 LightGBM을 추가한 앙상블 모델 구현

5. 시각화

6. 느낀점

  • 실제 필드에서는 도메인 지식을 반영한 결측치 처리가 필수적이지만, 해커톤 환경에서는 주최측이 의도적으로 만든 데이터 특수성을 최대한 활용하는 전략을 세워야 한다.
    - 결측치를 NaN에서 0으로 만드는 방법이 리더보드상 순위가 높음

0개의 댓글