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을 발표 자료에 적으면서 점수가 낮아졌지만, 많은 것을 고려한 그 정확함이 이 프로젝트의 제일 큰 강점이 된 것 같다. 다음 프로젝트에선 모델 돌리기 전에 "이 변수, 예측 시점에 진짜 알 수 있는 값인가?"부터 고민해볼 것 같다.
'실전 프로젝트 대시보드' 카테고리의 다른 글
| Chapter.7 실전 프로젝트 대시보드(9) (0) | 2026.06.10 |
|---|---|
| Chapter.7 실전 프로젝트 대시보드(8) (0) | 2026.06.09 |
| Chapter.7 실전 프로젝트 대시보드(7) (0) | 2026.06.08 |
| Chapter.7 실전 프로젝트 대시보드(6) (0) | 2026.06.05 |
| Chapter.7 실전 프로젝트 대시보드(5) (0) | 2026.06.04 |