城市河流中,不同水质指标受水文输移、生物地球化学过程和气象条件的影响,其预测所需的信息类型与历史范围可能存在明显差异。RiverLens聚焦上游观测、历史序列与气象输入在水质预测中的作用,探究不同指标的信息需求,以及模型对输入信息的依赖能否转化为稳定的预测收益。
本研究基于上下游三个监测站的水质水文观测及气象资料,以溶解氧(DO)、氨氮(NH₃-N)、高锰酸盐指数(CODMn)和总磷(TP)为预测对象,采用4小时时间步长,重点考察4—24小时预测,并扩展分析至72小时。通过模型比较、上游信息消融、历史窗口对照和气象输入组合实验,结合重复训练与不同目标站点的对照,评价信息增益及其稳定性。
研究进一步结合置换分析与分组Kernel SHAP,区分输入信息的预测增益、模型依赖和变量归因贡献,为城市河流水质预测中的指标差异化输入配置与模型评价提供依据。
先比较模型及上游信息增量,再选择各指标的历史配置,检验气象输入的指标与站点差异,最后分别用置换和SHAP分析误差敏感性与预测归因。
| 实验 | 研究问题 | 当前入口 | 主配置 |
|---|---|---|---|
| 01 | 哪个模型适合作为统一诊断基准? | 01_baseline_random.py |
baseline_random_gpu.json |
| 02 | 本站历史之外,上游观测是否仍有预测增量? | 02_station_ablation.py |
station_ablation_random_gpu.json |
| 03 | 各指标需要怎样的历史配置? | 03_window_horizon.py |
window_horizon_random_main_gpu.json |
| 04 | 不同指标如何响应气象输入及其组合? | 04_meteorology_random.py |
meteorology_random_gpu.json |
| 05 | 气象增益在不同目标站点是否一致? | 05_station_rotation_random.py |
station_rotation_random_gpu.json |
| 06 | 误差对哪些变量组和历史时段敏感? | 06_interpretation_precision_fix.py |
interpretation_random.json |
| 07 | 各变量组对模型预测的归因贡献有何差异? | 07_shap_kernel.py |
shap_kernel.json |
所有入口位于experiments/,配置位于configs/。统一选择入口为run_study.py。
建议Python 3.11或3.12,源码最低声明为3.10。CPU本次检查环境与验证范围见验证记录。CUDA实验应优先复用已经验证过的原GPU环境,避免替换已有PyTorch。
在项目根目录的PowerShell中:
# 新建环境时使用;已有GPU环境可跳过这两行
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e .
python scripts\audit_public_release.py
python -m unittest discover -s tests -v
python run_study.py --experiment 01 --mode run --dry-run--dry-run仅显示命令,不访问数据,也不训练模型。单元测试将合成数据放入临时目录并自动清理;不需要研究观测文件。若PowerShell不允许激活,可直接使用.\.venv\Scripts\python.exe代替python。
数据文件由使用者在本地放入data/raw/。文件名、列名和时间规则见数据接口。整个数据目录及实验输出默认由.gitignore排除。
# 先审计、再小规模检查、最后正式运行;每次只选一个实验
python run_study.py --experiment 01 --mode audit
python run_study.py --experiment 01 --mode smoke
python run_study.py --experiment 01 --mode run02—05可用相同格式;03预算诊断、06权重恢复及07依赖顺序见运行手册。已有结果无需为了上传GitHub重新训练。 保留原项目及其环境;本代码包应解压到一个新的独立目录。
| 路径 | 内容 |
|---|---|
src/jinjiang/ |
数据处理、模型、评价、实验和归因实现 |
experiments/ |
当前及历史实验命令入口 |
configs/ |
主实验、小规模检查和训练预算诊断配置 |
tests/ |
合成数据及受控测试,不含真实观测 |
scripts/ |
发布文件检查、合成数据生成 |
docs/ |
研究设计、结果摘要、运行及GitHub教程 |
docs/history/ |
既往版本说明,供追溯,不作为当前操作顺序 |
historical/do_upstream_ablation/ |
隔离保存的旧DO专门消融补丁 |