실전 프로젝트 대시보드

Chapter.7 실전 프로젝트 대시보드(10)

devjjun 2026. 6. 15. 10:23

TIL(Today I Learned)


1️⃣실전 프로젝트 최종(10)

베이스라인 성능 비교

최종 점수가 0.87 -> 0.86 하락

  • EV 주행거리를 예측하는 머신러닝 프로젝트를 했다. 데이터는 뮌헨 공대(FTM TU München)가 공개한 1세대 BMW i3의 실주행 기록 — 실제 70번의 주행 데이터
일반화의 결과로 인한 점수의 하락은 실전 상용화를 위해 꼭 필요한 과정이다

문제: 경쟁력 향상을 위한 남은 주행거리 예측

  • 계절에 따른 냉,난방에 의한 주행거리 하락은 전력 소모에 따른 결과이다.
  • 낮은 주행거리에 따른 배터리 개선을 위한 주행거리 예측 데이터 확보
  • 주행이 끝난 뒤, 실제 주행 조건을 바탕으로 그 주행에서 차가 얼마나 갈 수 있었는지를 데이터로 예측이 목표

데이터 전처리

원본은 0.1초 단위 실 주행 시계열. 

  • 1초 단위로 리샘플링 (단, Trip 경계를 넘지 않도록)
  • lag·이동평균 같은 시계열 피처 생성
  • VIF로 다중공선성 높은 변수 정리
  • 결국 trip 단위로 집계해서 70행짜리 학습 데이터로 만듦

머신러닝 결과 비교

처음 모델 R² -> 0.88쯤 나왔다. 

  • 모델이 크게 의존하던 변수 중에 Duration(주행 시간), SOC_Consumed(소모된 배터리량)
    -> 주행이 끝나야만 알 수 있는 값

데이터 누수(data leakage) 확인

  • 변수 4개(Duration, SOC_Consumed, Battery_State_of_Charge_End, Battery_Current_max)를 도메인 및
    데이터 분포를 통해 제외

제외 후 R²  0.87로 떨어졌다.

옵튜나 및 그리드 서치 진행 후 

일반화 된 R²  -> 0.76

마무리: 모델, 그리고 대시보드

  • 최종적으로는 CatBoost를 중심으로 트리 기반 모델들을 교차검증으로 비교하고, SHAP로 어떤 변수가 예측에 기여하는지 해석한 뒤, Streamlit 대시보드로 배포했다.
  • 대시보드를 만들 때도 같은 원칙을 지켰다. 보기 좋은 숫자를 띄우기보다, 정직한 성능(R² 0.767)을 그대로 보여주는 쪽을 택했다


2️⃣튜터 피드백

1. 세 가지의 데이터셋의 성적 비교를 첨부
2. ppt 내부의 최종 점수와 대시보드의 점수를 일치화


💡 느낀점

처음엔 점수가 곧 실력이라고 생각했음. 0.88 나왔을 때 진짜 다 끝난 줄 알았다. 숫자를 의심하기 시작하면서 프로젝트가 완전히 다르게 보였다. 제일 크게 느낀 건, 데이터를 아는 것보다 도메인을 아는 게 먼저라는 것이다. Duration이나 SOC_Consumed가 누수라는 걸 알아챈 건 모델 성능 지표가 아니라 주요 변수를 보고 "이 변수는 주행이 끝나야 알 수 있는데?"라는 단순한 질문이었다. 0.767을 발표 자료에 적으면서 점수가 낮아졌지만, 많은 것을 고려한 그 정확함이 이 프로젝트의 제일 큰 강점이 된 것 같다. 다음 프로젝트에선 모델 돌리기 전에 "이 변수, 예측 시점에 진짜 알 수 있는 값인가?"부터 고민해볼 것 같다.