沪净 AirCast 是一个面向全国部分城市的 PM2.5 浓度预测站,目前已覆盖上海、北京、广州、哈尔滨、拉萨。 每次打开页面时,实时拉取未来 5 天气象预报与近期 PM2.5 实况,送入基于历史数据训练的 随机森林模型(浏览器端代理推理引擎,逐日递推),给出未来五天的浓度预测与通俗解读—— 让出行、运动和开窗通风,都有据可依。
以下五项气象要素(风速、温度、气压、露点、湿度)正是预测模型的输入, 打开页面时从 Open-Meteo 数值预报实时获取。标签栏展示次日概要。
数据来源:Open-Meteo 数值预报(上海,31.23°N 121.47°E),天气现象由 WMO 天气码转换。 注:中国天气网不允许浏览器跨域抓取,故文字预报未直接摘取。
PM2.5 逐小时为 CAMS 空气质量模型预报,气象要素为 Open-Meteo 数值预报—— 均为打开页面时实时拉取的原始预报数据,未经本站加工。悬停曲线可查看任意时刻数值。
数据加载中…
预测由报告所述随机森林模型的浏览器端代理推理引擎实时生成: 按当前城市独立模型的特征重要性(滞后项 0.476 + 气象项 0.374)校准权重。 明天用真实观测作滞后项;第 2–5 天采用递推预测——以前一天的预测值作为滞后输入,误差随天数累积。
| 前一日 PM2.5(权重 0.403) | -- |
| 3 日滑动均值(权重 0.073) | -- |
| 明日风速 | -- |
| 明日降水(湿清除) | -- |
| 明日气压 / 湿度 / 露点 | -- |
| 年份趋势(治理效应) | -- |
* 代理引擎为按模型特征重要性重建的简化加性模型,用于网页端演示; 完整随机森林(400 棵树)的离线结果可能略有差异。 PM2.5 实况来自 Open-Meteo Air Quality(CAMS 模型数据,与地面监测站读数可能有偏差)。
第 2–5 天为递推预测:滞后特征由前一日预测值滚动生成,气象项仍用当日真实预报。 预测不确定性随天数增大——第 1 天误差约 ±8.8 μg/m³,第 5 天宜作为趋势参考而非精确数值。
阈值参考中国空气质量标准(GB 3095-2012)与 WHO 指导值,按敏感度整体下调; 敏感人群包括儿童、老人、哮喘及心血管疾病患者。选择会保存在本机。
模型设计的核心思想:污染有惯性,气象管扩散。 用昨天的浓度刻画"惯性",用明天的天气刻画"扩散与清除",二者叠加即可预测明日浓度; 将预测值回灌为新的"昨天",即可逐日滚动出未来五天。
滞后项(前一日 PM2.5、3 日滑动均值)+ 当日气象(温度、湿度、露点、气压、风速、降水)+ 时间项(月份、星期、年份)。全部来自预测时点可获得的信息,杜绝"用明天预测明天"的数据泄漏。
训练集 2018-05—2023(1727 天)→ 验证集 2024 全年(345 天)→ 测试集 2025-01—08(236 天)。严格按时间先后切分,模拟真实"预测未来"场景。
每棵树在随机样本与随机特征子集上生长,通过不断二分(如"前一日浓度 > 30?风速 < 3?")逼近非线性关系,最终取 400 棵树的平均。相比线性基线,它不会输出物理上不可能的负值,且测试集 R² 明显更高(0.474 vs 0.390)。
预测第 2 天时,把第 1 天的预测值当作"前一日浓度",与第 2 天的真实气象预报组合,再次推理;如此滚动至第 5 天。代价是误差逐日累积——这是所有多日预测的共同特性,因此越远的日期越应看作趋势而非定值。
前一日浓度是最强预测因子(污染自相关);剔除它之后,风速在气象因素中居首—— 与文献"平均风速每 +1 m/s,PM2.5 −9.5 μg/m³"的结论在排序上互相印证。 此外,年份作为治理趋势的载体被纳入模型:由 2021–2026 实测年均值拟合, 北京 −1.1%/年、广州 −1.3%/年、哈尔滨 −0.2%/年、拉萨 +1.5%/年(低浓度下小幅回升,如实反映), 预测时按目标年份对惯性基准做乘性修正,避免用过去的污染水平预测今天的空气。
上海模型详见《预测模型报告.md》(2026-08-24); 北京 / 广州 / 哈尔滨 / 拉萨四城独立模型(含边界层高度特征,ERA5 气象 + 地面站 PM2.5 训练)见《四城预测模型报告.md》(2026-08-27)。
感谢各位能访问我利用AI建的小网站,整个预测模型构建和网站建立花费了我一个多月的时间。在使用AI完成各项任务的过程中,我收获颇丰,也遇到了不少困难——获取数据、清洗数据、模型构建,都需要严谨的分析和刨根问底的求证。AI不是一个工具,而是一个帮助我更好看见世界的助手。现在再看空气质量日报,我看到的不只是数字,还有逆温、输送,和一座城市十年的治理。