基于卷积神经网络的多输出数据回归预测CNN(多输入多输出)

一、作品详细简介

1.1 附件文件夹程序代码截图

全部完整源代码,请在个人首页置顶文章查看:

学行库小秘_CSDN博客​编辑https://blog.csdn.net/weixin_47760707?spm=1000.2115.3001.5343

1.2 各文件夹说明

1.2.1 main.m 主函数文件

这段 MATLAB 代码实现了一个基于卷积神经网络(CNN)的回归模型,用于处理具有 28 个输入特征和 3 个输出目标的数据集。

以下是详细的步骤解释:


1. 数据导入与划分

数据维度 :输入特征 28 列,输出目标 3 列

  • 随机划分randperm 确保数据随机性,避免顺序偏差
  • 转置操作 :将样本从列向量转为行向量(适应后续处理)

2. 数据预处理

  • 归一化目的 :加速收敛,防止数值溢出
  • 关键操作reshape 将 1D 特征转换为 2D 图像格式(高度28,宽度1,通道1)
  • 维度说明 :CNN 要求输入为 [height, width, channels, samples]

3. CNN 网络架构

  • 结构特点
    • 3 个卷积层(特征提取)→ 2 个池化层(降维)→ 2 个全连接层(回归)
    • 使用批归一化加速训练并提高稳定性
    • ReLU 激活函数引入非线性
  • 输入输出 :28×1 → 最终输出 3 个连续值(回归问题)

4. 训练配置

  • 优化器 :Adam(自适应矩估计)
  • 学习率策略 :150 轮后降为 0.0001(0.001×0.1)
  • 批训练 :每次 64 个样本,平衡效率与内存

5. 模型训练与预测

  • trainNetwork :执行端到端的 CNN 训练
  • predict :用训练好的模型进行预测
  • 反归一化:将预测值转换回原始数据范围

6. 性能评估与可视化

  • 评估指标
    • RMSE :误差的均方根(越小越好)
    • :决定系数(越接近1越好)
    • MAE :绝对误差平均值(鲁棒性强)
    • MBE :预测偏差平均值(指示系统偏差)
  • 可视化 :每个输出单独绘制训练/测试集真实值与预测值对比曲线

技术亮点总结

  1. 一维卷积应用 :将 28 维特征视为 28×1 的"图像",利用 CNN 提取局部特征
  2. 批归一化 :每个卷积层后加入 BN 层,显著提升训练稳定性
  3. 动态学习率 :采用分段衰减策略(150 epoch 后降至 1/10)
  4. 多目标回归 :同时预测 3 个相关输出变量
  5. 全面评估 :计算 RMSE/R²/MAE/MBE 四类指标,多角度验证性能

注意 :该模型适用于输入特征具有空间/序列相关性的数据(如传感器信号、时间序列等),通过卷积操作捕捉局部依赖关系。

2 main.m 主函数文件部分代码

1.2.2 数据集文件

数据集为Excel数据csv格式文件,可以方便地直接替换为自己的数据运行程序。原始数据文件包含28列特征列数据和3列输出标签列数据,一共包含719条样本数据,具体如图所示。

二、代码运行结果展示

该代码实现了一个基于卷积神经网络(CNN)的多目标回归预测模型。

首先,代码导入包含719个样本的数据集,随机划分500个样本作为训练集、219个样本作为测试集,并对28维输入特征和3维输出目标进行归一化处理,同时将数据重塑为CNN所需的4D张量格式;

其次,构建包含三个卷积层(核尺寸2×1)、批归一化层、ReLU激活层、池化层和全连接层的CNN架构,配置Adam优化器及动态学习率策略进行模型训练;

最后,对训练集和测试集进行预测,通过反归一化还原预测值,计算每个输出维度的RMSE、R²、MAE和MBE四类评估指标,并绘制预测结果对比图进行可视化分析。

三、注意事项 :

1.程序运行软件推荐Matlab 2018B版本及以上;

2.所有程序都经过验证,保证程序可以运行。此外程序包含简要注释,便于理解。

3.如果不会运行,可以帮忙远程运行原始程序以及讲解和其它售后,该服务需另行付费。

  1. 代码包含详细的文件说明,以及对每个程序文件的功能注释,说明详细清楚。

5.Excel数据,可直接修改数据,替换数据后直接运行即可。