中国城市 PM2.5较高浓度风险识别

1 研究背景与分析目标

空气质量监测数据通常同时包含颗粒物和多种气态污染物。不同污染物之间既存在共同排放来源,也会受到气象扩散、化学转化和地理位置影响。通过机器学习识别PM2.5较高浓度风险,可以展示环境数据的清洗、长宽表转换、类别不平衡处理和模型解释方法。

本案例的目标不是替代环境监管标准,而是建立一个可在Jupyter Notebook中完整复现的分类流程。分析重点包括:数据质量识别、污染物分布和相关性、站点分组划分、多模型比较、阈值权衡以及错误样本解释。

2 数据来源与适用范围

使用公开世界空气质量快照中的中国记录制作可直接运行的CSV文件。原始记录来自多个空气质量数据源,数据字段包括国家代码、城市、监测点、坐标、污染物、单位、数值和更新时间。

需要特别说明的是,不同监测源的更新时间并不一致。虽然记录时间覆盖至2024年,但样本主要集中在2021年,因此本报告只分析污染物横截面关系与风险识别,不进行全国年度趋势推断。

完整代码和数据集(带分析)

3 数据字段与分析流程

|------------|--------------------------|
| 字段 | 含义 |
| 国家代码 | 国家或地区代码 |
| 城市 | 城市或区域名称 |
| 监测点 | 监测站点名称 |
| 坐标 | 纬度和经度 |
| 污染物 | PM2.5、PM10、NO2、SO2、CO或O3 |
| 数据源 | 监测数据提供来源 |
| 单位 | 污染物浓度单位 |
| 数值 | 监测浓度 |
| 更新时间 | 该条记录的更新时间 |

4 数据质量与探索性分析

4.1 中国空气质量记录的年份分布

****数据现象:****记录年份覆盖 2018---2024 年,但样本明显集中在2021年,2024年仅代表部分来源的最新快照。

4.2 各类污染物监测记录数量

六类主要污染物记录数量接近,说明多数站点同步提供颗粒物和气态污染物指标。

4.3 清洗前主要数据质量问题

****数据现象:****共发现 2 条负值或哨兵异常,站点和时间字段整体完整。

****原因分析:****监测系统可能用-9999等特殊数值表示设备故障、无上传值或无效观测。

4.4 PM2.5浓度分布

****数据现象:****PM2.5中位数为 18.0 µg/m³、均值为 21.5 µg/m³,分布具有明显右长尾。

****原因分析:****污染事件通常低频但强度较高,使环境浓度数据呈现多数低值、少量极高值的偏态结构。

4.5 PM2.5风险标签分布

4.6 各污染物浓度的对数分布比较

****数据现象:****各污染物数量级和离散程度差异明显,CO原始尺度远高于其他指标。

****原因分析:****污染物物理浓度、排放来源及监测尺度不同,不能直接使用同一原始纵轴比较。

4.7 污染物与地理变量相关性热力图

4.8 PM10与PM2.5的关系

****数据现象:****PM10升高时PM2.5整体同步上升,较高浓度样本集中在右上方,但散点仍存在离散。

****原因分析:****颗粒物共享来源,但细颗粒占比受燃烧类型、扬尘、湿度和化学转化影响。

4.9 不同纬度区间的较高浓度样本比例

5 特征工程与建模设计

5.1 标签与特征

目标变量为"较高浓度风险":PM2.5大于35 µg/m³记为1,否则记为0。该阈值用于构造教学型二分类问题,不对应法定空气质量等级。模型输入不包含PM2.5本身,使用PM10、NO2、SO2、CO、O3、纬度、经度、月份和小时。

5.2 数据划分

采用GroupShuffleSplit按站点划分,训练集1,197条、验证集241条、测试集248条。这样可避免同一站点的地理和命名特征同时出现在训练和测试阶段。\

5.3 模型设置

模型保持简洁:多数类基线用于识别虚高准确率;逻辑回归作为线性可解释模型;决策树用于表达简单非线性;随机森林通过多棵决策树集成提高稳定性。逻辑回归、决策树和随机森林均使用类别权重平衡少数类。未使用XGBoost、LightGBM、深度学习或复杂参数搜索。

5.4 验证集模型指标

|------------|-------------|-------------|-------------|-------------|-----------------|----------------|
| 模型 | 准确率 | 精确率 | 召回率 | F1值 | ROC-AUC | PR-AUC |
| 随机森林 | 0.8880 | 0.5333 | 0.8000 | 0.6400 | 0.9387 | 0.6685 |
| 逻辑回归 | 0.8838 | 0.5217 | 0.8000 | 0.6316 | 0.9158 | 0.6429 |
| 决策树 | 0.8589 | 0.4615 | 0.8000 | 0.5854 | 0.8780 | 0.5299 |
| 多数类基线 | 0.8755 | 0.0000 | 0.0000 | 0.0000 | 0.5000 | 0.1245 |

6 模型评价与结果解释

6.1 验证集模型指标对比

多数类基线无法识别较高浓度样本;随机森林在ROC-AUC、PR-AUC和F1上综合领先。

6.2 随机森林测试集混淆矩阵

模型识别 28 条较高浓度样本,漏判 11 条,并误报 11 条一般浓度样本。错误主要来自阈值附近样本,不同类别在特征空间存在重叠。

6.3 测试集ROC曲线

6.4 测试集PR曲线

6.5 分类阈值对识别结果的影响

6.6 随机森林特征重要性

6.7 不同实际类别的预测概率分布

7 主要结论

****•****数据包含11,115条中国空气质量长表记录,六类污染物记录数量相对均衡,但年份集中,适合横截面关联分析而非长期趋势推断。

****•****完整建模样本为1,686条,较高浓度样本占14.2%,类别不平衡使多数类基线产生表面准确率但无法识别风险。

****•****PM10与PM2.5相关系数约为0.85,是最主要的模型特征;NO2、CO、O3和空间位置提供补充信息。

8 局限性与改进建议

具体细节见原文

创造不易,谢谢各位多多点赞收藏!

相关推荐
海宇服务6 小时前
零信任架构实战:基于海宇对外投资历史查询服务构建自动化供应商准入网关
运维·人工智能·架构·自动化
东风破_7 小时前
别急着上 Agentic RAG:先用 LangGraph 把最小 RAG 跑明白
人工智能
LaughingZhu7 小时前
Product Hunt 每日热榜 | 2026-09-12
人工智能·深度学习·神经网络·搜索引擎·百度
天真小巫7 小时前
2026.9.13总结(工作量日益繁重的当下,AI如何提效)
人工智能
Zguigo7 小时前
【CUDA1】GPUvsCPU,CUDA Kernel
人工智能·pytorch·深度学习
thesky1234567 小时前
用 ONNX Runtime 把 PyTorch 模型变成跨平台极速推理引擎:导出、优化、量化完整实
人工智能·深度学习·模型部署
米小虾7 小时前
把 KV Cache 从 3514 字节压到 890 字节:DeepSeek V4.1-Flash 动了什么,又没动什么
人工智能
锋行天下7 小时前
LangGraph 进阶:Command + Send 动态控制流、并行 Map-Reduce 实战与踩坑
人工智能
米小虾7 小时前
AI 观察:CEO 们集体喊"慢一点",钱却在加速进场
人工智能
微三云生态系统架构师-彭丹8 小时前
远方好物S2B2C系统架构:一级分销与保证金托管的合规技术实现
人工智能·算法