실전 프로젝트 대시보드

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

devjjun 2026. 6. 2. 19:42

TIL(Today I Learned)


1️⃣실전 프로젝트(4)

통계 검정 추가

① TripA vs TripB — Mann-Whitney U

두 Trip 간 핵심 변수 분포 차이 검정. 전부 유의미하게 나왔지만 중앙값 차이 크기(Diff_%)를 같이 봤을 때 실질적 차이가 작은 변수도 있었고, 차이의 원인이 계절/환경 차이로 설명되기 때문에 합쳐서 학습하는 게 맞다는 결론.


② Weather / Route 그룹별 — Kruskal-Wallis

날씨·경로 그룹에 따라 SoC, HVAC, Battery_Power 등이 유의미하게 다른지 검정. 전부 p=0.0000으로 나왔지만 초단위 샘플이 수만 개라 작은 차이도 유의하게 잡히는 것. 중앙값 범위로 실질 크기를 같이 봐야 의미 있는 결과.


머신러닝 시각화

① RMSE 분포 산점도

RandomForest / CatBoost / XGBoost 3개 모델의 교차검증 fold별 RMSE 분포를 산점도로 비교. 

  • 비교 결과 정확도에 비례하지 않고 튀는 경향이 있음, 그리드 서치로 적정값 찾아볼 예정

② 학습 단계별 예측 편차 비교 

Baseline → 피처 선택 후 → Optuna 튜닝 후 3단계로 RMSE/MAE 변화를 비교. 

  • Optuna 튜닝 후 R^2 값 기준이라 유의미하게 올라가기는 했지만 RMSE가 중요함 확인 

③ Train vs Test 실제값·예측값 산점도 

3개 모델 각각 실제값(x축) vs 예측값(y축) 산점도. 대각선(y=x)에 가까울수록 예측 정확. Train이 선에 붙어있고 Test가 퍼져있으면 과적합 신호. 

  • 데이터로 CatBoost가 덜 튀는 것 확인 앙상블도 확인 예정


추후 진행 예정 

1. 모델 최종 선택

  • 3개 모델 RMSE/MAE 비교 결과에서 최종 모델 하나를 고르거나, 앙상블(스태킹/보팅) 고려.

2. 최종 모델 평가

  • Test 성능 최종 수치 정리 (R², RMSE, MAE)
  • Train vs Test 격차로 과적합 여부 최종 판단
  • 잔차 분포가 고르게 퍼져있는지 확인

3. 예측 오차 분석

  • 어떤 구간에서 예측이 잘 안 됐는지 (저온 구간, 고부하 구간 등)
  • 잔차가 특정 변수와 패턴을 보이는지

💡 느낀점

전체적으로 코드를 구성하는데에 어려움이 컸다. 코랩 파일이 길어질 수록 전처리 데이터도 섞이고, 어떠한 시험 이후로 컬럼명이 늘어나거나 적어지거나 하는데 정리를 하는 과정이 한 번 필요할 것 같다. 또한 통계검정도 진행 과정에서 프로젝트 데이터의 경우 Weater과 Route의 범주형 변수가 있어서 이 변수가 과연 주행거리와 유의미한지 검정해야 하는데 데이터를 불러오고 라이브러리를 활용하고 이를 출력하는 과정에서 어려움을 겪었다, 전체적인 통계학의 복습이 필요함을 느꼈다.