基于GA-CNN-LSTM的多输出回归预测与SHAP可解释性分析

当深度学习遇上群体智能优化,当"黑箱模型"遇上博弈论解释------一次从模型优化到特征溯源的完整技术实践。


一、研究背景

在工程实践中,回归预测任务普遍面临三大核心挑战:模型结构选择困难多输出耦合复杂 、以及模型可解释性缺失

深度学习模型(如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的影响相对较小。


八、应用场景

本方案适用于以下典型场景:

  1. 工业过程建模与优化:如化工反应产率预测、制造业质量指标预估,需要同时预测多个关联输出指标
  2. 金融时序预测:多维度指标(如收益率、波动率、成交量)的联合预测
  3. 能源与环境监测:如光伏发电功率与辐照度的双输出预测、多污染物浓度回归
  4. 设备故障诊断与寿命预测:多传感器数据融合,预测设备剩余寿命及健康指标
  5. 科研与学术研究:需要量化各输入变量对预测结果贡献度的可解释性分析场景
  6. 数据驱动决策系统:需要模型输出"为什么"给出该预测结果的可解释性场景

九、总结与展望

本文提出了一套完整的GA-CNN-LSTM多输出回归+SHAP可解释性分析技术方案,实现了以下目标:

  • ✅ 利用遗传算法自动搜索CNN-LSTM最优超参数,避免了人工调参的低效与主观性
  • ✅ 结合混沌映射增强种群初始化,提升全局搜索能力
  • ✅ 支持多输出同时预测,模型结构灵活可扩展
  • ✅ 通过SHAP值实现特征贡献度的量化分析,打破深度学习"黑箱"
  • ✅ 提供丰富的可视化对比手段,结果直观、便于论文撰写与汇报展示

后续可探索方向:将GA替换为粒子群算法(PSO)、灰狼算法(GWO)等更高效的智能优化算法;引入Kernel SHAP或Deep SHAP加速大规模特征的解释计算;将模型部署为MATLAB App或Web服务,降低使用门槛。


完整代码私信回复基于GA-CNN-LSTM的多输出回归预测与SHAP可解释性分析

相关推荐
王莎莎-MinerU2 小时前
解析回归集:RAG 和 Agent 上线前,先把表格、公式、版面测清楚
人工智能·算法·数据挖掘·回归·pdf·ocr
糯米导航11 小时前
AI 视觉回归实战:截图对比不是“找不同”,如何让智能差异分析真正服务 UI 质量
人工智能·ui·回归
咖啡屋和酒吧3 天前
干细胞认知偏差纠正:回归科学本质的三大方向
人工智能·回归·精选
机器学习之心3 天前
扩散模型遇上 Transformer-GRU:小样本场景下的回归预测新范式
回归·gru·transformer·扩散模型
Tbisnic3 天前
23.大模型开发:深度学习----CNN 卷积神经网络 与 RNN 循环神经网络
人工智能·python·rnn·深度学习·cnn·ai大模型
2301_800256113 天前
人工智能入门学习——ANN、CNN基本概念和考试核心代码
人工智能·学习·cnn
想会飞的蒲公英3 天前
逻辑回归为什么叫回归,却用来做分类
人工智能·python·分类·回归·逻辑回归
AI科技星4 天前
特征值与特征向量不是矩阵特殊解,是变换矩阵下不改变生长方向、仅缩放体量的固有主螺旋脉络 -《全域数学vs传统数学:人类文明进阶200讲》第73讲
人工智能·线性代数·矩阵·数据挖掘·回归·乖乖数学·全域数学
想会飞的蒲公英4 天前
回归模型怎样评估:MAE、MSE、RMSE 和 R²
人工智能·python·机器学习·数据分析·回归