3) ML 5종 추론 모델

💡 쉽게 말하면: 지금 점수(TVI)가 현재의 건강검진이라면, 여기서는 “이 마을이 앞으로 어떻게 될까”를 예측합니다. 소멸 위험을 분류하고(XGBoost), 인구가 몇 년 뒤 어디까지 줄지 그리며(Prophet), 비슷한 처지의 마을끼리 묶어(K-Means) 무엇이 통했는지 벤치마킹합니다.

backfill_tvi_feature_snapshot.py로 36개월 실데이터에서 5,508행(153마을 × 36개월, 피처 22개) 훈련 샘플 적재 후 훈련 완료.

문제 모델 산출 결과
소멸 위험 분류 XGBoost Classifier (scale_pos_weight 불균형 보정) risk_level(danger/warning/safe) + 신뢰도 %
12개월 후 TVI 회귀 XGBoost Regressor + Ridge tvi_next_12m + 80% 신뢰 구간
인구 시계열 예측 Prophet (yearly_seasonality) 미래 인구 + 80% 신뢰 구간 밴드
마을 유형 군집화 K-Means (K=6) cluster_label(“고령화+교통고립형” 등) + 벤치마킹
What-if 처방 계수 Ridge Regression 수작업 상수 → 데이터 기반 처방 효과 계수 교체

ML 추론 APIGET /api/townpulse/villages/{villageCode}/ml-prediction

{
  "risk_level_predicted": "danger",
  "risk_confidence": 0.87,
  "tvi_next_12m": 34.2,
  "tvi_lower_bound": 29.1,
  "tvi_upper_bound": 39.4,
  "cluster_label": "고령화+교통고립형",
  "similar_villages": [{ "village_name": "...", "tvi_score": 0, "top_prescription": "..." }]
}

피처 22개 = 인구 5 · 빈집 1 · 교통 4 · 인프라 4 · 행정 1 · TVI 7.


팀 Pulse Lab — TownPulse 충청북도 마을생존 AI 의사결정 플랫폼. 본 사이트는 개발 문서 자료입니다.

This site uses Just the Docs, a documentation theme for Jekyll.