基于PSO-CNN-LSTM的多输出回归预测与SHAP可解释性分析——完整技术路线与工程实践

本文系统介绍一套"智能优化+深度学习+可解释分析"的端到端回归预测方案,涵盖混沌映射初始化的粒子群优化(PSO)算法、CNN-LSTM混合神经网络构建与超参数自动寻优、多输出回归预测、SHAP特征贡献分析及新数据预测部署全流程。


一、研究背景与问题定义

在许多工程和科学领域中,我们常常面临多输入、多输出的回归预测任务------例如根据多个工艺参数预测产品的多个性能指标,或基于多维环境变量预测多个目标参数。传统方法(如多元线性回归、SVR、随机森林)在面对非线性、时序依赖关系时表现不足,而深度学习方法虽然建模能力强,但其"黑箱"特性使得模型决策过程难以解释,在医疗、金融、工业等高风险领域受到限制。

针对上述痛点,本文构建了一套完整的可解释深度学习预测框架,具备以下核心能力:

  1. 自动超参数寻优:采用混沌映射改进的粒子群算法(PSO)自动搜索CNN-LSTM的最优网络结构参数,避免人工试错的低效。
  2. 高精度多输出预测:CNN负责提取局部特征,LSTM捕获时序依赖,两者结合实现端到端的多输出回归。
  3. SHAP特征可解释性:基于合作博弈论Shapley值,量化每个输入特征对每个输出的边际贡献,使模型从"黑箱"走向"白箱"。
  4. 新数据一键预测:训练完成后可直接加载新样本数据,无需重新训练即可输出预测结果。

二、技术路线总览

整体技术路线分为五个阶段 ,如下图所示:

复制代码
┌────────────────────────────────────────────────────────────────────┐
│  阶段一:数据预处理                                                │
│  数据导入 → Min-Max归一化 → 训练/测试集划分(8:2)                  │
├────────────────────────────────────────────────────────────────────┤
│  阶段二:PSO智能优化                                               │
│  混沌映射初始化种群 → 粒子迭代寻优 → 输出最优超参数集合              │
├────────────────────────────────────────────────────────────────────┤
│  阶段三:CNN-LSTM建模与训练                                         │
│  最优参数构建网络 → Adam优化器训练(500 Epochs)→ 模型收敛           │
├────────────────────────────────────────────────────────────────────┤
│  阶段四:模型评估与可视化                                           │
│  RMSE/R²/MAE指标 → 雷达图对比 → 预测曲线 → 误差分析 → 回归拟合图    │
├────────────────────────────────────────────────────────────────────┤
│  阶段五:SHAP可解释分析与新数据预测                                  │
│  Shapley值精确计算 → 蜂群图+条形图 → 新数据前向预测 → 结果导出       │
└────────────────────────────────────────────────────────────────────┘

三、算法原理与公式推导

3.1 混沌映射改进的粒子群优化(PSO)

标准PSO算法中,种群初始化采用随机均匀分布,容易导致初始粒子集中在搜索空间的局部区域,影响全局探索能力。本文引入混沌映射初始化策略,利用混沌系统的遍历性和伪随机性生成分布更均匀的初始种群。

3.1.1 标准PSO速度与位置更新公式

粒子的速度和位置更新遵循以下经典公式:

vik+1=w⋅vik+c1⋅r1⋅(pbesti−posik)+c2⋅r2⋅(gbest−posik) v_{i}^{k+1} = w \cdot v_{i}^{k} + c_1 \cdot r_1 \cdot (pbest_i - pos_i^{k}) + c_2 \cdot r_2 \cdot (gbest - pos_i^{k}) vik+1=w⋅vik+c1⋅r1⋅(pbesti−posik)+c2⋅r2⋅(gbest−posik)

posik+1=posik+vik+1 pos_i^{k+1} = pos_i^{k} + v_{i}^{k+1} posik+1=posik+vik+1

其中:

  • vikv_i^kvik:粒子 iii 在第 kkk 次迭代的速度
  • posikpos_i^kposik:粒子 iii 的位置(即一组CNN-LSTM超参数)
  • www:惯性权重,采用线性递减策略 w=wmax⁡−kK(wmax⁡−wmin⁡)w = w_{\max} - \frac{k}{K} (w_{\max} - w_{\min})w=wmax−Kk(wmax−wmin)
  • c1,c2c_1, c_2c1,c2:自我认知系数和社会认知系数(均取2.0)
  • r1,r2r_1, r_2r1,r2:0,10,10,1 区间均匀随机数
  • pbestpbestpbest:粒子历史最优位置
  • gbestgbestgbest:全局历史最优位置
3.1.2 混沌映射初始化

本文实现了9种混沌映射用于种群初始化,供用户根据数据特性选择:

序号 映射名称 数学表达式 参数
1 Tent映射 xn+1={xn/μ,xn<μ(1−xn)/(1−μ),xn≥μx_{n+1} = \begin{cases} x_n / \mu, & x_n < \mu \\ (1-x_n)/(1-\mu), & x_n \geq \mu \end{cases}xn+1={xn/μ,(1−xn)/(1−μ),xn<μxn≥μ μ=1.2\mu=1.2μ=1.2
2 Chebyshev映射 xn+1=cos⁡(k⋅arccos⁡(xn))x_{n+1} = \cos(k \cdot \arccos(x_n))xn+1=cos(k⋅arccos(xn)) k=2k=2k=2
3 Singer映射 xn+1=μ(7.86xn−23.31xn2+28.75xn3−13.302875xn4)x_{n+1} = \mu(7.86x_n - 23.31x_n^2 + 28.75x_n^3 - 13.302875x_n^4)xn+1=μ(7.86xn−23.31xn2+28.75xn3−13.302875xn4) μ=1\mu=1μ=1
4 Logistic映射 xn+1=μxn(1−xn)x_{n+1} = \mu x_n (1 - x_n)xn+1=μxn(1−xn) μ=2\mu=2μ=2
5 Sine映射 xn+1=4asin⁡(πxn)x_{n+1} = \frac{4}{a} \sin(\pi x_n)xn+1=a4sin(πxn) a=2a=2a=2
6 Circle映射 xn+1=mod  (xn+a−b2πsin⁡(2πxn),1)x_{n+1} = \mod(x_n + a - \frac{b}{2\pi}\sin(2\pi x_n), 1)xn+1=mod(xn+a−2πbsin(2πxn),1) a=0.5,b=0.6a=0.5,b=0.6a=0.5,b=0.6
7 立方映射 xn+1=rxn(1−xn2)x_{n+1} = r x_n (1 - x_n^2)xn+1=rxn(1−xn2) r=2r=2r=2
8 Hénon映射 {xn+1=1−axn2+ynyn+1=bxn\begin{cases} x_{n+1} = 1 - a x_n^2 + y_n \\ y_{n+1} = b x_n \end{cases}{xn+1=1−axn2+ynyn+1=bxn a=1.4,b=0.3a=1.4,b=0.3a=1.4,b=0.3
9 广义Logistic映射 xn+1=rxn(1−sxn2)x_{n+1} = r x_n (1 - s x_n^2)xn+1=rxn(1−sxn2) r=2,s=0.9r=2,s=0.9r=2,s=0.9

初始化后,将混沌序列线性映射到搜索空间:

posi,j=(ubj−lbj)⋅chaosi,j+lbj pos_{i,j} = (ub_j - lb_j) \cdot chaos_{i,j} + lb_j posi,j=(ubj−lbj)⋅chaosi,j+lbj

3.2 CNN-LSTM混合网络架构

CNN-LSTM混合模型充分利用了卷积神经网络(CNN)的局部特征提取能力长短期记忆网络(LSTM)的时序建模能力。网络结构如下:

3.2.1 网络层级结构
层级 类型 参数/说明
1 序列输入层 输入维度:[特征数, 1, 1]
2 序列折叠层 sequenceFoldingLayer,将序列结构适配为图像结构
3 卷积层1 卷积核 [bestfitler, 1],特征图 bestfm,Padding=same
4 ReLU激活 引入非线性
5 最大池化层 池化窗口 [bestpool, 1],步长 [beststep, 1]
6 卷积层2 卷积核 [bestfitler, 1],特征图 bestfm × 2,Padding=same
7 ReLU激活 引入非线性
8 序列展开层 sequenceUnfoldingLayer
9 展平层 flattenLayer
10 LSTM层 神经元数 besthiddens,输出模式 last
11 Dropout层 丢失率 0.05,防止过拟合
12 全连接层 输出维度 = 目标变量数
13 回归输出层 regressionLayer,MSE损失
3.2.2 关键设计说明
  • 序列折叠/展开机制sequenceFoldingLayersequenceUnfoldingLayer 成对使用,将一维序列数据转换为二维图像格式(适应CNN卷积操作),处理完毕后再还原为序列结构。
  • 一维卷积思想 :卷积核尺寸设为 [k, 1],即仅在特征维度方向滑动,相当于对每个时间步的特征向量进行局部加权组合。
  • 特征图倍增策略 :第二个卷积层的特征图数量是第一层的2倍(bestfm → bestfm×2),遵循深度学习中"通道数逐层递增"的经典设计模式。

3.3 SHAP特征贡献分析

SHAP(SHapley Additive exPlanations)源自合作博弈论中的Shapley值概念,用于公平分配每个特征对预测结果的贡献。

3.3.1 Shapley值核心公式

对于特征 jjj,其Shapley值 ϕj\phi_jϕj 定义为:

ϕj(f)=∑S⊆M∖{j}∣S∣!⋅(∣M∣−∣S∣−1)!∣M∣!f(S∪{j})−f(S) \phi_j(f) = \sum_{S \subseteq M \setminus \{j\}} \frac{|S|! \cdot (|M| - |S| - 1)!}{|M|!} \left f(S \\cup \\{j\\}) - f(S) \\right ϕj(f)=S⊆M∖{j}∑∣M∣!∣S∣!⋅(∣M∣−∣S∣−1)!f(S∪{j})−f(S)

其中:

  • MMM:所有特征的集合,∣M∣|M|∣M∣ 为特征总数
  • SSS:不包含特征 jjj 的任意特征子集
  • f(S)f(S)f(S):仅用特征子集 SSS 时模型的预测值(缺失特征用全局均值填充)
  • f(S∪{j})−f(S)f(S \cup \{j\}) - f(S)f(S∪{j})−f(S):特征 jjj 加入后的边际贡献
3.3.2 SHAP四大公理化性质

SHAP值是唯一同时满足以下四大性质的归因方法:

  1. 对称性(Symmetry):若两个特征对所有子集的边际贡献相同,则它们的SHAP值相等。

  2. 有效性(Efficiency):所有特征的SHAP值之和等于模型预测值与基准预测值之差:

    ∑j=1Mϕj=f(x)−Ef(x) \sum_{j=1}^{M} \phi_j = f(x) - \mathbb{E}f(x) j=1∑Mϕj=f(x)−Ef(x)

  3. 线性性(Linearity):若模型是多个子模型的线性组合,则SHAP值亦满足线性可加性。

  4. 零贡献性(Dummy):若某特征从不改变预测值,则其SHAP值为0。

3.3.3 精确计算实现

本方案采用**遍历幂集(power set)**的精确计算方法,计算复杂度为 O(2M)O(2^M)O(2M)。对于特征数较少(如本文的5个特征,共 25=322^5 = 3225=32 种组合)的场景,精确计算完全可行。

3.4 精度评价指标

采用三个经典回归评价指标:

均方根误差(RMSE):

RMSE=1n∑i=1n(yi−y^i)2RMSE = \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∣MAE = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|MAE=n1i=1∑n∣yi−y^i∣


四、关键参数设定

4.1 PSO优化器参数

参数 设定值 说明
种群规模 NNN 5 粒子数量
最大迭代次数 10 寻优终止条件
惯性权重 wmax⁡w_{\max}wmax 0.9 初始惯性权重(偏重全局搜索)
惯性权重 wmin⁡w_{\min}wmin 0.6 最终惯性权重(偏重局部搜索)
自我认知系数 c1c_1c1 2.0 个体经验权重
社会认知系数 c2c_2c2 2.0 群体经验权重
速度范围 2,62, 62,6 限制粒子单步移动幅度
混沌映射类型 Tent映射(label=1) 可切换为其他8种

4.2 超参数搜索空间

超参数 符号 下限 上限 类型 最优值
卷积核尺寸 bestfitler 2 16 整数 16
特征图指数 bestfm_idx 3 7 整数 → 2n2^n2n 7 → 128
池化窗口大小 bestpool 2 5 整数 5
池化步长 beststep 1 3 整数 3
LSTM神经元数 besthiddens 2 16 整数 11

4.3 CNN-LSTM训练参数

参数 设定值 说明
优化器 Adam 自适应矩估计
最大训练轮数 500 充分训练
初始学习率 0.01 η0\eta_0η0
学习率调度策略 Piecewise(分段衰减) 每200轮 × 0.1
学习率衰减因子 0.1 η←η×0.1\eta \leftarrow \eta \times 0.1η←η×0.1
Dropout率 0.05 轻量正则化
数据打乱 每轮打乱 防止顺序依赖
执行环境 CPU 通用兼容
训练/测试比例 80% : 20% 标准划分

4.4 数据预处理

  • 归一化方法 :Min-Max归一化,映射到 0,10, 10,1 区间
  • 输入特征数:5个(x1 ~ x5)
  • 输出目标数:2个(多输出回归)
  • 样本划分:可选随机打乱或保持原序

五、运行环境

环境项 版本/说明
编程语言 MATLAB
核心工具箱 Deep Learning Toolbox
必需函数 trainNetwork, predict, convolution2dLayer, lstmLayer, trainingOptions
推荐MATLAB版本 R2019b 及以上
运行方式 运行 main.m 即可一键执行全流程
硬件要求 CPU即可运行;GPU可加速训练

六、实验结果与分析

6.1 模型精度对比

PSO优化后的CNN-LSTM在全部评价指标上均显著优于未优化的基准CNN-LSTM模型:

输出指标1:

指标 训练集(优化后) 训练集(未优化) 测试集(优化后) 测试集(未优化)
RMSE 1.2141 1.3053 1.4938 1.6783
0.9829 0.9802 0.9688 0.9606
MAE 1.0037 1.0556 1.2138 1.4182

输出指标2:

指标 训练集(优化后) 训练集(未优化) 测试集(优化后) 测试集(未优化)
RMSE 1.2057 1.3196 1.4883 1.5753
0.9831 0.9797 0.9690 0.9653
MAE 0.9941 1.0745 1.2081 1.3266

核心结论 :PSO将卷积核从默认的2扩增至16,特征图从8提升至128,LSTM神经元从7调整至11------显著增强了模型的表达能力,两个输出的测试集R²均达到 0.96以上

6.2 SHAP特征重要性分析

平均绝对SHAP值揭示了各特征对模型预测的贡献程度:

特征 输出1---平均|SHAP| 输出2---平均|SHAP|
x1 0.0810 0.0814
x2 3.4710 3.4817
x3 0.2448 0.2443
x4 0.0266 0.0271
x5 0.2224 0.2213

关键发现 :特征 x2 是绝对主导变量,其SHAP值(~3.48)远超其他特征,说明它是两个输出目标的核心驱动因子;x3 和 x5 有中等贡献;x1 和 x4 的贡献较小。该分析结果为实际工程中的变量筛选、降维与工艺优化提供了量化依据。

6.3 输出图表清单

本方案自动生成以下可视化成果(共20+张图):

图类 内容 数量
PSO收敛曲线 迭代过程中RMSE最优值变化 1张
网络结构图 CNN-LSTM层级拓扑可视化 1张
雷达图 优化前后RMSE/R²/MAE对比 4张(2输出 × 2集)
训练/测试预测对比曲线 真实值 vs 预测值逐样本对比 4张
百分比误差柱状图 逐样本百分比误差分布 4张
回归拟合图 MATLAB plotregression 四象限图 2张
优化 vs 未优化对比 双模型测试集预测效果叠加 2张
训练过程监控 RMSE/Loss随迭代变化曲线 1张
SHAP蜂群图 特征贡献分布与方向可视化 2张
SHAP条形图 全局特征重要性排名 2张

七、应用场景

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

7.1 工业过程建模与软测量

  • 化工过程:根据温度、压力、流量等过程变量预测产物浓度、转化率等多个质量指标
  • 制药工程:基于原料配比和工艺参数预测药品的多个关键质量属性(CQAs)
  • 冶金/材料:根据成分与工艺参数预测材料的多个力学性能指标

7.2 环境与能源预测

  • 空气质量:基于多维气象和排放数据预测多种污染物浓度(PM2.5, PM10, O₃, NO₂等)
  • 电力负荷:根据历史负荷、气温、节假日等因素预测多个区域的电力需求
  • 水质监测:基于传感器数据预测多个水质指标(COD, NH₃-N, DO等)

7.3 金融与经济

  • 多资产价格预测:基于宏观经济指标预测多个金融资产收益率
  • 风险管理:基于多维风控特征预测多个风险评分维度

7.4 生物医学

  • 多指标诊断:基于多项检验数据预测多个疾病风险指标
  • 药物响应:基于基因表达数据预测药物对多个靶点的响应效果

八、代码文件结构与调用说明

复制代码
PSO-CNN-LSTM回归+特征贡献SHAP分析+多输出+新数据预测/
├── main.m                  # 主文件,一键运行全流程
├── PSO.m                   # 混沌初始化+PSO优化算法
├── fit.m                   # PSO适应度函数(训练CNN-LSTM并返回RMSE)
├── yuan.m                  # 未优化的CNN-LSTM基准模型
├── zhibiao.m               # 精度评价指标计算(RMSE/R²/MAE)
├── shapley_function.m      # SHAP值精确计算+蜂群图/条形图绘制
├── ys.m                    # 9种混沌映射初始化函数
├── newpre.m                # 新数据前向预测函数
├── 回归数据.xlsx            # 训练数据(前列输入,后列输出)
├── 新的多输入.xlsx          # 待预测新样本的输入数据
├── 新的输出.xlsx            # 新数据预测结果输出
├── 第1个输出指标.xlsx       # 输出1的优化vs未优化精度表
├── 第2个输出指标.xlsx       # 输出2的优化vs未优化精度表
└── spider_plot/            # 雷达图绘制工具包

一键运行方式 :在MATLAB中打开 main.m,按 F5 运行即可。


九、总结与亮点

  1. 端到端自动化 :从数据预处理、超参数寻优、模型训练、精度评估、可解释分析到新数据预测,全流程一键执行,极大降低使用门槛。

  2. 混沌PSO超参优化 :内置9种混沌映射初始化策略,有效改善标准PSO的早熟收敛问题;相比手动试错调参,自动寻优使测试集R²提升约 0.8%~1% ,RMSE降低约 6%~11%

  3. 完整可解释性:精确SHAP值计算结合蜂群图和条形图双重视觉化,清晰揭示每个特征的贡献方向和大小,满足高风险场景的模型审计需求。

  4. 多输出灵活扩展:代码架构支持任意数量输入和任意数量输出,修改Excel数据即可适配新任务,无需改动核心逻辑。

  5. 工程实用性 :包含新数据预测模块(newpre.m),训练完成后直接调用即可产出预测结果并导出为Excel,适合生产环境部署。


完整代码私信回复基于PSO-CNN-LSTM的多输出回归预测与SHAP可解释性分析------完整技术路线与工程实践