Files
elderly-heat-warning/docs/superpowers/specs/2026-05-28-pipeline-implementation-design.md
T

89 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 数据处理→模型训练→论文 全流程实现设计
**日期**: 2026-05-28
**状态**: 已批准
## 概述
ERA5 数据下载完毕后(焦作 180 + 郑州 180),执行从数据预处理到 LaTeX 论文填充的完整管线。
## 阶段 1:预处理
**入口**: `python -m src.data.preprocess`(无参数,遍历 CITIES
**管线**:
1. `load_era5_city` — 拼接 180 个 NetCDF → xarray Dataset
2. `compute_daily_aggregates` — 6h→日平均,K→°C,列重命名
3. `compute_relative_humidity` — Magnus 公式
4. `compute_heat_index` — NOAA Rothfusz 公式
5. `build_features` — 滚动均值(3/7/14天)、滞后(1/2/3/7天)、热浪检测(≥3天)、季节 sin/cos 编码
6. `compute_risk_labels` — 基于体感温度阈值的 0-3 风险标签
7. `create_sequences` — LOOKBACK=14, 3 预测窗口(3/7/30天) → 单次滑动窗口
8. `preprocess_all` — 遍历城市,合并保存
**产出**: `data/processed/sequences.npz`
- X: (N, 14, input_dim) float32
- y_short: (N,) int64 (4类)
- y_medium: (N,) int64
- y_long: (N,) int64
## 阶段 2:模型训练
**入口**: `python -m src.models.train`
**LSTM-Attention**:
- 架构: Input Proj → 2-layer BiLSTM(128) → 4-head MHA → 3 独立 head
- 损失: Focal Loss (alpha=0.25, gamma=2.0)
- 优化器: AdamW (lr=1e-3)
- 调度器: ReduceLROnPlateau (patience=8)
- 早停: 15 epochs
- 设备: CUDA (RTX 4060)
**XGBoost 基线**:
- 输入: X.reshape(N, 14*D) 展平
- 3 个独立 XGBClassifier (n_estimators=200, max_depth=6, lr=0.05)
**分割**: 时间顺序 70/15/15(约 2010-2020 / 2021-2022 / 2023-2024
**产出**:
- `outputs/models/best_model.pt`
- `outputs/logs/training_history.json`
- `outputs/models/test_predictions.npz`
## 阶段 3:评估
**入口**: `python -m src.models.evaluate`
**产出图表**(中文标注, 300dpi:
- `outputs/figures/confusion_matrix.png` — 3×2 子图(LSTM/XGBoost × 3时间尺度)
- `outputs/figures/model_comparison.png` — F1 + Accuracy 柱状对比图
- `outputs/figures/training_curves.png` — loss/acc 曲线
## 阶段 4Web 大屏
**入口**: `python -m src.web.app`
**验证项**:
- 6 面板正常渲染(温度趋势/风险展示/人口饼图/时间柱状/暴露-反应/历史回顾)
- 4 API 端点返回正确格式
- 模型预测在 Web 中正常展示(或 fallback 降级)
## 阶段 5LaTeX 论文
**入口**: `cd thesis && make`xelatex + biber
**填充内容**:
- 第 1 章:研究背景(已有框架)
- 第 2 章:数据与方法 → 填入 ERA5 变量表、NOAA 公式、模型架构
- 第 3 章:模型设计 → LSTM-Attention + XGBoost 架构图
- 第 4 章:实验与结果 → 插入评估图表、分类报告
- 第 5 章:可视化系统 → Web 大屏截图
- 第 6-7 章:讨论与结论
## 依赖与前置条件
- Python 3.13 + CUDA PyTorch 2.12.0+cu126
- GPU: RTX 4060 Laptop (8GB VRAM)
- ERA5 数据: 焦作 180 + 郑州 180 NetCDF
- 外部数据: mortality_population.csv, exposure_response.csv