
























当深度学习遇上群体智能优化,当"黑箱模型"遇上博弈论解释------一次从模型优化到特征溯源的完整技术实践。
一、研究背景
在工程实践中,回归预测任务普遍面临三大核心挑战:模型结构选择困难 、多输出耦合复杂 、以及模型可解释性缺失。
深度学习模型(如CNN-LSTM)在时序特征提取方面展现出强大能力,但其超参数的选择(如卷积核大小、特征图数量、LSTM神经元个数等)通常依赖人工经验或网格搜索,效率低下且难以收敛到全局最优。另一方面,模型训练完成后往往被视为"黑箱",缺乏对输入特征贡献度的量化分析,这在工业决策场景中是不可接受的。
本文提出了一套**"GA优化 + CNN-LSTM建模 + SHAP可解释性分析"**的端到端技术方案:利用遗传算法(Genetic Algorithm, GA)自动搜索CNN-LSTM的最优超参数组合,结合改进的混沌映射初始化种群,并通过SHAP(SHapley Additive exPlanations)值量化各输入特征对预测输出的边际贡献,实现从"模型构建---参数优化---结果解释---新数据预测"的完整闭环。
二、主要功能
本方案涵盖以下六大核心功能模块:
| 功能模块 | 说明 |
|---|---|
| 多输出回归预测 | 支持同时预测多个输出指标,一个模型完成多目标任务 |
| GA超参数优化 | 自动搜索卷积核、特征图、池化窗口/步长、LSTM神经元数的最优组合 |
| 混沌映射初始化 | 提供9种混沌映射(Tent、Logistic、Chebyshev等)增强种群多样性 |
| SHAP特征贡献分析 | 基于合作博弈Shapley值量化每个输入特征的预测贡献度 |
| 优化前后对比 | 雷达图、预测曲线、误差柱状图等多维可视化对比 |
| 新数据预测 | 支持加载新的输入数据,直接调用已训练模型生成预测结果 |
三、技术路线 & 算法步骤
3.1 整体技术路线
原始数据 → 数据归一化 → 训练/测试划分
↓
┌───────────────────────────────┐
│ GA优化循环 │
│ ┌─────────────────────────┐ │
│ │ 混沌映射初始化种群 │ │
│ │ ↓ │ │
│ │ 构建CNN-LSTM并训练 │ │
│ │ ↓ │ │
│ │ 计算RMSE适应度 │ │
│ │ ↓ │ │
│ │ 选择 → 交叉 → 变异 │ │
│ └─────────────────────────┘ │
│ ↓ 迭代收敛 │
│ 获得最优超参数 │
└───────────────────────────────┘
↓
构建最优CNN-LSTM网络并训练
↓
预测输出 → 反归一化 → 精度评估
↓
┌───────────────────────────────┐
│ SHAP可解释性分析 │
│ • 蜂群图(特征贡献分布) │
│ • 条形图(全局特征重要性) │
└───────────────────────────────┘
↓
新数据预测 → 输出保存
3.2 详细算法步骤
Step 1:数据预处理
- 读取Excel回归数据,前5列为输入特征,后2列为输出指标
- 使用
mapminmax归一化至0,1区间,保留归一化参数供后续反归一化 - 按8:2比例划分训练集与测试集,支持样本随机打乱
Step 2:GA种群初始化(混沌映射增强)
- 从9种混沌映射中选择一种(默认Tent映射),生成初始种群
- 混沌映射相比纯随机初始化,能提升种群多样性,加速全局搜索收敛
Step 3:GA迭代优化
- 编码与解码 :5维实数编码染色体 →
[卷积核大小, log2(特征图数), 池化窗口, 池化步长, LSTM神经元数] - 适应度函数:以测试集RMSE为目标,训练CNN-LSTM并返回误差
- 选择操作:采用轮盘赌选择,适应度越高的个体被选中的概率越大
- 交叉操作:算术交叉,交叉概率 (P_c = 0.8)
- 变异操作:非均匀变异,变异概率 (P_m = 0.05),变异幅度随代数增长而衰减
- 终止条件:达到最大迭代次数(默认10代)
Step 4:构建最优CNN-LSTM网络
- 将GA搜索到的最优超参数代入,构建包含两层卷积+池化+单层LSTM的混合网络
- 使用Adam优化器训练,分段学习率衰减策略
Step 5:模型评估与对比
- 同时训练未优化的CNN-LSTM(默认参数)作为基线
- 计算RMSE、R²、MAE三项精度指标
- 多维度可视化对比:雷达图、预测曲线、误差分布、回归拟合图
Step 6:SHAP特征贡献分析
- 基于Shapley值原理,遍历所有特征组合计算每项特征的边际贡献
- 生成SHAP蜂群图(展示特征贡献方向与大小分布)和条形图(全局重要性排序)
Step 7:新数据预测
- 加载新的输入Excel数据,复用归一化参数和训练好的模型
- 输出预测结果并保存为Excel文件
四、公式原理
4.1 遗传算法核心
遗传算法模拟自然选择与遗传机制,通过选择、交叉、变异三个操作不断进化种群。
选择概率(轮盘赌):
Pi=fi∑j=1NfjP_i = \frac{f_i}{\sum_{j=1}^{N} f_j}Pi=∑j=1Nfjfi
其中 (f_i = 1 / \text{RMSE}_i) 为第 (i) 个个体的适应度(误差越小,适应度越高)。
非均匀变异算子:
δ={v2⋅(1−r(1−t/T)2),r>0.5v1⋅(1−r(1−t/T)2),r≤0.5\delta = \begin{cases} v_2 \cdot (1 - r^{(1 - t/T)^2}), & r > 0.5 \\ v_1 \cdot (1 - r^{(1 - t/T)^2}), & r \leq 0.5 \end{cases}δ={v2⋅(1−r(1−t/T)2),v1⋅(1−r(1−t/T)2),r>0.5r≤0.5
其中 (t) 为当前代数,(T) 为总代数,(r \in (0,1)) 为随机数,(v_1)、(v_2) 为与边界距离。变异幅度随代数增加逐步减小,保证后期搜索的精细性。
4.2 CNN-LSTM网络结构
卷积层(Conv2D):
Fk=ReLU(Wk∗X+bk)\mathbf{F}_k = \text{ReLU}(\mathbf{W}_k * \mathbf{X} + b_k)Fk=ReLU(Wk∗X+bk)
- 卷积核尺寸:(K \times 1)(沿特征维度一维卷积)
- 两层卷积,特征图数量分别为 (F_m) 和 (2F_m)
最大池化层(Max Pooling):
yi,j=max(p,q)∈Ri,jxp,qy_{i,j} = \max_{(p,q) \in \mathcal{R}{i,j}} x{p,q}yi,j=(p,q)∈Ri,jmaxxp,q
- 池化窗口:(P \times 1),步长:(S \times 1)
LSTM单元:
ft=σ(Wf⋅ht−1,xt+bf)it=σ(Wi⋅ht−1,xt+bi)C~t=tanh(WC⋅ht−1,xt+bC)Ct=ft⊙Ct−1+it⊙C~tot=σ(Wo⋅ht−1,xt+bo)ht=ot⊙tanh(Ct)\begin{aligned} f_t &= \sigma(W_f \cdot h_{t-1}, x_t + b_f) \\ i_t &= \sigma(W_i \cdot h_{t-1}, x_t + b_i) \\ \tilde{C}t &= \tanh(W_C \cdot h_{t-1}, x_t + b_C) \\ C_t &= f_t \odot C{t-1} + i_t \odot \tilde{C}_t \\ o_t &= \sigma(W_o \cdot h_{t-1}, x_t + b_o) \\ h_t &= o_t \odot \tanh(C_t) \end{aligned}ftitC~tCtotht=σ(Wf⋅ht−1,xt+bf)=σ(Wi⋅ht−1,xt+bi)=tanh(WC⋅ht−1,xt+bC)=ft⊙Ct−1+it⊙C~t=σ(Wo⋅ht−1,xt+bo)=ot⊙tanh(Ct)
其中 (f_t, i_t, o_t) 分别为遗忘门、输入门、输出门,(C_t) 为细胞状态,(h_t) 为隐藏状态。
损失函数(MSE):
L=1N∑i=1N(yi−y^i)2\mathcal{L} = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2L=N1i=1∑N(yi−y^i)2
4.3 精度评价指标
均方根误差(RMSE):
RMSE=1N∑i=1N(yi−y^i)2\text{RMSE} = \sqrt{\frac{1}{N}\sum_{i=1}^{N}(y_i - \hat{y}_i)^2}RMSE=N1i=1∑N(yi−y^i)2
决定系数(R²):
R2=1−∑i=1N(yi−y^i)2∑i=1N(yi−yˉ)2R^2 = 1 - \frac{\sum_{i=1}^{N}(y_i - \hat{y}i)^2}{\sum{i=1}^{N}(y_i - \bar{y})^2}R2=1−∑i=1N(yi−yˉ)2∑i=1N(yi−y^i)2
平均绝对误差(MAE):
MAE=1N∑i=1N∣yi−y^i∣\text{MAE} = \frac{1}{N}\sum_{i=1}^{N}|y_i - \hat{y}_i|MAE=N1i=1∑N∣yi−y^i∣
4.4 SHAP值计算原理
SHAP基于博弈论中的Shapley值,定义特征 (j) 对样本 (x) 预测的贡献为:
ϕj=∑S⊆F∖{j}∣S∣!(∣F∣−∣S∣−1)!∣F∣!fx(S∪{j})−fx(S)\phi_j = \sum_{S \subseteq F \setminus \{j\}} \frac{|S|! (|F| - |S| - 1)!}{|F|!} \left f_x(S \\cup \\{j\\}) - f_x(S) \\rightϕj=S⊆F∖{j}∑∣F∣!∣S∣!(∣F∣−∣S∣−1)!fx(S∪{j})−fx(S)
其中:
- (F) 为所有特征的集合
- (S) 为不包含特征 (j) 的特征子集
- (f_x(S)) 为仅使用 (S) 中特征时模型的预测值(其他特征以参考值替代)
- 权重系数 (\frac{|S|!(|F|-|S|-1)!}{|F|!}) 保证了对所有可能组合的公平加权
SHAP值满足四大公理性性质:
- 有效性(Efficiency):(\sum_{j=1}^{M} \phi_j = f(x) - \mathbb{E}f(X))
- 对称性(Symmetry):贡献相同的特征获得相等的SHAP值
- 线性性(Linearity):模型线性组合时SHAP值可加
- 零贡献性(Dummy):无贡献的特征SHAP值为零
五、参数设定
5.1 GA优化参数
| 参数 | 设定值 | 说明 |
|---|---|---|
| 种群规模 (N) | 5 | 每代候选解的个数 |
| 最大迭代次数 | 10 | 终止条件 |
| 交叉概率 (P_c) | 0.8 | 算术交叉 |
| 变异概率 (P_m) | 0.05 | 非均匀变异 |
| 混沌映射类型 | Tent(label=1) | 共9种可选 |
5.2 超参数搜索空间
| 超参数 | 搜索范围 | 整数约束 | 最优值 |
|---|---|---|---|
| 卷积核大小 | 2, 16 | ✓ round取整 | 9 |
| 特征图数量 | (2^n, n \in 3, 7) | ✓ (2^{\text{round}(x)}) | 32(n=5) |
| 池化窗口 | 2, 5 | ✓ round取整 | 3 |
| 池化步长 | 1, 3 | ✓ round取整 | 1 |
| LSTM神经元数 | 2, 16 | ✓ round取整 | 7 |
5.3 训练超参数
| 参数 | 设定值 |
|---|---|
| 优化器 | Adam |
| 初始学习率 | 0.01 |
| 学习率衰减策略 | piecewise(每200轮×0.1) |
| 最大训练轮数(Epochs) | 500 |
| Dropout | 0.05 |
| 数据打乱 | every-epoch |
| 训练集比例 | 80% |
六、运行环境
| 环境项 | 要求 |
|---|---|
| 编程语言 | MATLAB |
| 必需工具箱 | Deep Learning Toolbox |
| 运行设备 | CPU(代码设定ExecutionEnvironment='cpu') |
| 输入数据格式 | Excel (.xlsx),前列输入、后列输出 |
| 输出文件 | 精度指标表 (.xlsx)、预测结果 (.xlsx)、多类可视化图表 |
文件结构说明:
| 文件名 | 功能 |
|---|---|
main.m |
主程序,一键运行完整流程 |
GA.m |
遗传算法实现(含选择、交叉、变异函数) |
fit.m |
适应度函数(构建CNN-LSTM并返回RMSE) |
yuan.m |
未优化的CNN-LSTM基线模型 |
newpre.m |
新数据预测函数 |
shapley_function.m |
SHAP值计算与可视化 |
zhibiao.m |
RMSE/R²/MAE精度指标计算 |
ys.m |
9种混沌映射种群初始化 |
回归数据.xlsx |
训练数据(5输入+2输出) |
新的多输入.xlsx |
待预测的新输入数据 |
spider_plot/ |
雷达图可视化工具包 |
七、实验结果与分析
7.1 优化效果对比
输出指标1------训练集:
| 模型 | RMSE ↓ | R² ↑ | MAE ↓ |
|---|---|---|---|
| GA-CNN-LSTM(优化后) | 1.0587 | 0.9870 | 0.8646 |
| CNN-LSTM(未优化) | 1.9593 | 0.9553 | 1.5334 |
输出指标1------测试集:
| 模型 | RMSE ↓ | R² ↑ | MAE ↓ |
|---|---|---|---|
| GA-CNN-LSTM(优化后) | 1.5543 | 0.9662 | 1.3413 |
| CNN-LSTM(未优化) | 1.7033 | 0.9594 | 1.4432 |
输出指标2 结果趋势与输出1一致,优化后模型在训练集和测试集上的三项精度指标均全面优于 未优化基线模型。训练集RMSE从约1.94降至约1.07(降幅约45%),R²从0.956提升至0.987;测试集同样表现出更好的泛化能力。
7.2 SHAP特征贡献分析
各特征的平均绝对SHAP值排序如下:
| 特征 | 输出1 SHAP值 | 输出2 SHAP值 | 重要性排序 |
|---|---|---|---|
| x2 | 3.4193 | 3.4052 | ★★★★★ |
| x5 | 0.3576 | 0.3565 | ★★ |
| x3 | 0.2258 | 0.2191 | ★ |
| x1 | 0.1671 | 0.1700 | ★ |
| x4 | 0.1636 | 0.1647 | ★ |
核心发现 :特征x2对两个输出指标的预测贡献度远超其他特征(SHAP值约为第二名的10倍),是模型决策的主导因子。在实际应用中应重点关注x2的测量精度与稳定性。x5为次要影响因素,x1、x3、x4的影响相对较小。
八、应用场景
本方案适用于以下典型场景:
- 工业过程建模与优化:如化工反应产率预测、制造业质量指标预估,需要同时预测多个关联输出指标
- 金融时序预测:多维度指标(如收益率、波动率、成交量)的联合预测
- 能源与环境监测:如光伏发电功率与辐照度的双输出预测、多污染物浓度回归
- 设备故障诊断与寿命预测:多传感器数据融合,预测设备剩余寿命及健康指标
- 科研与学术研究:需要量化各输入变量对预测结果贡献度的可解释性分析场景
- 数据驱动决策系统:需要模型输出"为什么"给出该预测结果的可解释性场景
九、总结与展望
本文提出了一套完整的GA-CNN-LSTM多输出回归+SHAP可解释性分析技术方案,实现了以下目标:
- ✅ 利用遗传算法自动搜索CNN-LSTM最优超参数,避免了人工调参的低效与主观性
- ✅ 结合混沌映射增强种群初始化,提升全局搜索能力
- ✅ 支持多输出同时预测,模型结构灵活可扩展
- ✅ 通过SHAP值实现特征贡献度的量化分析,打破深度学习"黑箱"
- ✅ 提供丰富的可视化对比手段,结果直观、便于论文撰写与汇报展示
后续可探索方向:将GA替换为粒子群算法(PSO)、灰狼算法(GWO)等更高效的智能优化算法;引入Kernel SHAP或Deep SHAP加速大规模特征的解释计算;将模型部署为MATLAB App或Web服务,降低使用门槛。