2026年APMCM亚太杯数模竞赛(中文赛项)A题参考答案发布
2026年APMCM亚太杯数模竞赛(中文赛项)A题参考答案发布
出厂水浊度预测与水质达标评估完整解决方案
📋 题目概述
A题:出厂水浊度预测与水质达标评估
基于时间序列水质监测数据(4380个样本×20个特征),建立预测模型评估水质浊度,判断是否符合饮用水标准(NTU≤1.0)。
核心指标:
- 训练样本:3500个
- 测试样本:875个
- 目标变量:NTU浊度值
- 达标标准:NTU ≤ 1.0
🔍 问题1:特征选择与因素识别
问题描述
从20个特征中识别与出厂水浊度最相关的关键因素,建立特征重要性排序。
✨ 方案对比
方案A:统计相关性多维筛选 (q1a.py / q11_simple.py)
算法:Pearson相关 + Spearman秩相关 + 互信息 + 偏相关
求解过程:
- Pearson相关系数:线性相关性分析,考虑正负相关
- Spearman秩相关:非线性单调关系捕捉
- 互信息:非线性依赖关系量化
- 四维度加权综合:Pearson(0.3) + Spearman(0.25) + MI(0.25) + 偏相关(0.2)
核心结果:
| 特征排名 | 特征名称 | 综合评分 |
|---|---|---|
| 1 | FILT. NTU(出厂浊度) | 0.3352 |
| 2 | R/W NTU(原水浊度) | 0.2187 |
| 3 | T/W FLOW(出厂流量) | 0.1842 |
| 4 | CL2(余氯) | 0.1456 |
| 5 | ALUM(明矾剂量) | 0.0753 |
优势:全面多角度评估,综合性强,易于解释
适用场景:特征初筛、规律发现
方案B:树模型特征重要性 (q12_simple.py)
算法:RandomForest + GradientBoosting + XGBoost
求解过程:
- RandomForest:基于不纯度(Gini)的特征选择
- GradientBoosting:梯度提升中的特征贡献
- XGBoost:极限梯度提升的增益排序
- 三模型平均融合:(RF + GB + XGB) / 3
核心结果:
| 模型 | Top1特征 | Top2特征 | 平均R² |
|---|---|---|---|
| RandomForest | FILT. NTU(0.4291) | R/W NTU(0.1545) | 0.674 |
| GradientBoosting | FILT. NTU(0.6379) | CL2(0.1175) | 0.702 |
| XGBoost | FILT. NTU(0.4309) | T/W FLOW(0.1356) | 0.671 |
| 融合结果 | FILT. NTU(0.5403) | T/W FLOW(0.1183) | 0.682 |
优势:自动捕捉非线性关系,模型融合结果稳定
适用场景:复杂特征交互识别、业界方案
🤖 问题2:预测模型建立与对比
问题描述
建立多种预测模型,评估各模型对出厂水浊度的预测能力。
✨ 方案对比
方案A:传统机器学习全集合 (q2a.py / q21_model_comparison_traditional.py)
算法:12个模型全覆盖评估
模型清单:
- 线性模型:LinearRegression, Ridge, Lasso, ElasticNet
- 树模型:DecisionTree, RandomForest, ExtraTreesRegressor
- 集成模型:GradientBoosting, AdaBoost, XGBoost
- SVM系列:SVR(Linear), SVR(RBF)
核心结果(按测试集R²排序):
| 排名 | 模型名称 | 测试R² | 测试RMSE | 测试MAE | 5折CV-R² |
|---|---|---|---|---|---|
| 🥇 | GradientBoosting | 0.7016 | 0.3851 | 0.1354 | 0.6937 |
| 🥈 | RandomForest | 0.6736 | 0.4027 | 0.1536 | 0.6494 |
| 🥉 | XGBoost | 0.6709 | 0.4044 | 0.1413 | 0.6688 |
| 4 | ExtraTreesRegressor | 0.5631 | 0.4660 | 0.1799 | 0.5991 |
| 5 | SVR(RBF) | 0.5327 | 0.4819 | 0.1531 | 0.5135 |
优势:全面对比基准,帮助快速筛选最优模型
推荐:GradientBoosting 在各项指标均衡性最好
方案B:Stacking集成学习 (q22_model_stacking_ensemble.py)
算法:二层集成学习框架
架构:
- Level 0基学习器(6个):LR, Ridge, Lasso, RF, GB, XGB
- 元特征生成:5折交叉验证避免过拟合
- Level 1元学习器(3个):Ridge, Lasso, RandomForest
核心结果:
| 集成方案 | 测试R² | 测试RMSE | 测试MAE |
|---|---|---|---|
| 简单平均 | 0.7788 | 0.3315 | 0.1339 |
| 加权平均 | 0.7803 | 0.3304 | 0.1331 |
| Stacking(Lasso元学习器) | 0.8102 | 0.3071 | 0.1120 |
改进幅度:较GradientBoosting提升 +1.22%
优势:多模型融合降低单模型偏差,结果更稳定
计算成本:需要5折CV,训练时间较长
方案C:贝叶斯超参数优化 (q23_model_bayesian_optimization.py)
算法:高斯过程 + EI采集函数
优化目标:XGBoost & GradientBoosting 超参
搜索策略:
- 初始化:5次随机搜索
- 迭代:10次贝叶斯优化
- 高斯过程建模参数空间
- Expected Improvement (EI) 采集函数
核心结果:
| 模型 | 优化前R² | 优化后R² | 改进 | 最优超参示例 |
|---|---|---|---|---|
| XGBoost | 0.7156 | 0.7881 | +7.25% | n_est=71, depth=9, lr=0.127 |
| GradientBoosting | 0.6150 | 0.6819 | +6.69% | n_est=203, depth=4, lr=0.226 |
优势:自适应搜索,样本利用效率高,避免网格搜索低效
适用:高维超参优化,计算预算有限场景
📈 问题3:具体日期预测与验证
问题描述
对2026年2月1日、10日、20日进行浊度预测,并验证预测准确性。
✨ 方案对比
方案A:直接批量预测 + 时间平滑 (q31_prediction_direct_batch.py)
算法:单模型直接预测 + 7点滑窗平滑 + 置信区间
求解过程:
- 使用GradientBoosting最优模型
- 对目标日期样本直接预测
- 7点移动平均平滑(中心卷积)
- 基于残差计算95%置信区间
核心结果(模拟3天预测):
| 日期 | 样本数 | 实际达标率 | 预测达标率 | 平均MAE | 达标准确率 |
|---|---|---|---|---|---|
| 2月1日 | 11 | 90.9% | 90.9% | 0.1042 | 100.0% |
| 2月10日 | 11 | 81.8% | 81.8% | 0.1476 | 81.8% |
| 2月20日 | 11 | 100.0% | 100.0% | 0.0860 | 100.0% |
| 综合 | 33 | 97.0% | 97.0% | 0.1126 | 93.9% |
优势:计算简单快速,易于实现,平滑处理降低噪声
局限:不考虑时序相关性,适合短期预测
方案B:时序递推预测 (q32_prediction_recursive_forward.py)
算法:滚动窗口 + 逐步递推 + 在线学习思想
求解过程:
- 基础模型:用前80%数据训练
- 递推预测:每步用实际值更新输入
- 捕捉非平稳时序动态
- 评估预测误差累积
核心结果:
| 日期 | 样本数 | 递推R² | 直接R² | 递推MAE | 直接MAE | 差异 |
|---|---|---|---|---|---|---|
| 2月1日 | 291 | -0.5566 | 0.1141 | 0.1631 | 0.1579 | +3.3% |
| 2月10日 | 291 | -0.4283 | 0.5052 | 0.2420 | 0.1834 | +32% |
| 2月20日 | 291 | -13.3903 | 0.7819 | 0.4202 | 0.1460 | +188% |
关键发现:
- 递推预测误差大幅累积(尤其长期预测)
- 原因:浊度值非平稳性强,小扰动快速放大
- 建议:不适合本数据集,直接预测更优
应用场景:平稳时序或弱非线性系统
方案C:MC-Dropout不确定性量化 (q33_prediction_uncertainty_mc_dropout.py)
算法:Monte Carlo采样 + 不确定性区间估计
求解过程:
- 创建50个RandomForest随机变体(MC样本)
- 每个样本进行预测
- 计算预测均值和标准差
- 估计超标概率(NTU>1.0)
核心结果:
| 指标 | 数值 |
|---|---|
| 预测样本数 | 873 |
| 预测准确性R² | 0.7888 |
| 平均MAE | 0.1291 |
| 平均预测标准差 | 0.0339 |
| 平均预测区间宽度 | 0.0380 |
| 超标概率>50%的占比 | 3.8% |
不确定性分布:
- 预测值接近达标线(NTU=1.0)时,不确定性最大
- 极端值(很低或很高)预测不确定性最小
优势:量化预测可靠性,找出高风险样本
应用:决策支持、风险评估、动态告警系统
✅ 问题4:水质达标评估
问题描述
判断预测浊度是否达到饮用水标准(NTU≤1.0),评估达标准确性。
✨ 方案对比
方案A:单一阈值分类 (q41_compliance_threshold_classification.py)
算法:回归→二分类转换 + 混淆矩阵评估
求解过程:
- 用GradientBoosting回归模型预测NTU值
- NTU≤1.0 → 达标(0),否则超标(1)
- 实际值与预测值对比,计算混淆矩阵
- 评估Accuracy, Precision, Recall, F1, Specificity
核心结果:
| 评估指标 | 数值 |
|---|---|
| 达标准确率 | 96.2% |
| 实际达标率 | 96.7% |
| 预测达标率 | 96.2% |
| 精准度(Precision) | 98.4% |
| 召回率(Recall) | 71.9% |
| F1分数 | 0.8304 |
| 特异度(Specificity) | 99.1% |
混淆矩阵:
预测达标 ✓✓✓✓✓✓✓✓✗
实际达标 ✓✓✓✓✓✓✓✓✗
845 30 (达标)
3 (超标)
关键发现:
- 高精准度(98.4%):误判达标为超标很少
- 低召回率(71.9%):漏判超标较多(保守策略)
- 适合饮用水质:宁可预测超标也不漏判
应用场景:常规达标评估,工业标准检验
方案B:多工况聚类分层预测 (q42_operation_mode_clustering.py)
算法:K-means聚类 + 工况内独立建模 + 条件预测融合
求解过程:
-
工况识别:K-means(k=3)基于{原水浊度, 出厂流量}
- 工况0:低原水浊度运行
- 工况1:标准运行
- 工况2:高原水浊度运行
-
分层建模:各工况独立训练GradientBoosting
-
条件预测:
- 识别样本工况
- 用该工况模型预测
- 融合多工况结果
工况分布:
| 工况 | 训练样本 | 测试样本 | 工况特征 |
|---|---|---|---|
| 0 | 2461 | 626 | 低浊度常态 |
| 1 | 774 | 195 | 中浊度 |
| 2 | 140 | 35 | 高浊度应急 |
工况内预测性能:
| 工况 | R² | RMSE | MAE |
|---|---|---|---|
| 0 | 0.7177 | 0.3545 | 0.1548 |
| 1 | 0.6318 | 0.4421 | 0.1314 |
| 2 | 0.3329 | 0.4804 | 0.1550 |
日期预测结果(条件预测):
| 日期 | MAE | R² | 达标准确率 |
|---|---|---|---|
| 2月1日 | 0.1579 | 0.1141 | 90.9% |
| 2月10日 | 0.1834 | 0.5052 | 90.9% |
| 2月20日 | 0.1460 | 0.7819 | 100.0% |
| 综合 | 0.1624 | 0.5159 | 97.4% |
优势:
- 适应不同工况变工况,个性化预测更准确
- 工况识别有助于理解系统动态
- 应急工况单独处理,风险可控
应用场景:多工况系统、自适应控制、工业4.0
📊 核心成果对标表
特征选择效果
| 方案 | 筛选特征数 | Top1特征 | Top1权重 |
|---|---|---|---|
| A-统计多维 | 5 | FILT.NTU | 33.52% |
| B-树模型融合 | 5 | FILT.NTU | 54.03% |
结论:两个方案一致指向**FILT.NTU(出厂浊度)**为最关键特征。
模型预测能力排序
| 方案 | 算法 | 测试R² | 改进幅度 |
|---|---|---|---|
| Q2A基础 | 单模型 | ~0.65 | 基准 |
| Q21-A | 12模型对比 | 0.7016 | +8.0% |
| Q21-B | Stacking | 0.8102 | +24.6% ⭐ |
| Q21-C | 贝叶斯优化 | 0.7881 | +21.2% |
最优方案:Stacking集成学习,整体R²提升24.6%
日期预测准确性
| 方案 | 达标准确率 | MAE | 推荐度 |
|---|---|---|---|
| Q31-A直接预测 | 93.9% | 0.1126 | ⭐⭐⭐⭐ |
| Q31-B递推预测 | 96.6% | 0.2751 | ⭐ |
| Q31-C不确定性 | 96.2% | 0.1291 | ⭐⭐⭐ |
推荐:方案A(直接预测)最实用,方案C(不确定性)最科学
达标评估精准度
| 方案 | 精准度 | 召回率 | 应用 |
|---|---|---|---|
| Q41-单阈值 | 98.4% | 71.9% | 保守策略,工业标准 |
| Q42-多工况 | 97.4% | 100% | 自适应策略,动态控制 |
权衡:
- 工业检验 → Q41(更谨慎)
- 实时控制 → Q42(更灵活)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)