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点滑窗平滑 + 置信区间  
求解过程
  1. 使用GradientBoosting最优模型
2. 对目标日期样本直接预测
3. 7点移动平均平滑(中心卷积)
4. 基于残差计算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)
算法:滚动窗口 + 逐步递推 + 在线学习思想  
求解过程
  1. 基础模型:用前80%数据训练
2. 递推预测:每步用实际值更新输入
3. 捕捉非平稳时序动态
4. 评估预测误差累积
核心结果
日期
样本数
递推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采样 + 不确定性区间估计  
求解过程
  1. 创建50个RandomForest随机变体(MC样本)
2. 每个样本进行预测
3. 计算预测均值和标准差
4. 估计超标概率(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)
算法:回归→二分类转换 + 混淆矩阵评估  
求解过程
  1. 用GradientBoosting回归模型预测NTU值
2. NTU≤1.0 → 达标(0),否则超标(1)
3. 实际值与预测值对比,计算混淆矩阵
4. 评估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聚类 + 工况内独立建模 + 条件预测融合  
求解过程
  1. 工况识别:K-means(k=3)基于{原水浊度, 出厂流量}
  • 工况0:低原水浊度运行
  • 工况1:标准运行
  • 工况2:高原水浊度运行

2. 分层建模:各工况独立训练GradientBoosting
3. 条件预测
  • 识别样本工况
  • 用该工况模型预测
  • 融合多工况结果

工况分布
工况
训练样本
测试样本
工况特征
0
2461
626
低浊度常态
1
774
195
中浊度
2
140
35
高浊度应急

工况内预测性能
工况
RMSE
MAE
0
0.7177
0.3545
0.1548
1
0.6318
0.4421
0.1314
2
0.3329
0.4804
0.1550

日期预测结果(条件预测):
日期
MAE
达标准确率
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(更灵活)


点击 阅读原文 获取相关资料
扫码咨询
图片
扫码咨询
赛中指导|保奖服务
资料预定|综测加分
【END】