基于一维卷积神经网络(1D-CNN)的多变量回归预测模型MATLAB完整代码

作品简介


该代码实现了一个基于一维卷积神经网络(1D-CNN)的多变量回归预测模型,可用于处理固定长度的序列输入,适用于多输入单输出的回归任务。以下从八个方面对其进行简要概述。

一、研究背景

随着工业物联网和传感器技术的发展,多变量时序预测问题日益普遍。传统方法(如MLP)直接展平特征会丢失局部相关性,而1D-CNN能够有效提取序列中的局部模式,在保持较低参数量的同时获得良好的预测性能。本代码以7个特征作为固定长度序列,构建轻量级1D-CNN进行回归预测,可作为多变量回归问题的通用基线模型。

二、主要功能

  1. 数据加载与预处理:从Excel文件读取7个输入特征和1个输出变量,完成训练/测试集划分及Z‑score标准化。
  2. 1D-CNN模型构建:通过卷积、池化、全局平均池化、全连接层搭建回归网络。
  3. 模型训练与验证:使用Adam优化器,在训练过程中监控测试集误差,绘制训练进度曲线。
  4. 多指标评估:计算训练集和测试集的RMSE、R²、MAE、MAPE、SMAPE五项指标。
  5. 可视化分析:生成真实值与预测值对比图、散点图、残差直方图及误差指标柱状图,全面评估模型效果。

三、算法步骤

数据准备

  • 加载data.xlsx,取前7列作为输入X,第8列作为输出Y
  • 以80%/20%比例随机划分训练/测试集(固定随机种子42)。
  • 基于训练集计算均值和标准差,对XY分别进行Z‑score标准化。
  • 将标准化后的X转换为1×7的行向量,存入cell数组以适应序列输入层。

网络结构设计

  • 序列输入层:特征维度1,序列长度固定为7
  • 两个卷积‑池化块:每个块包含卷积(3核,16/32通道)、批归一化、ReLU、最大池化(步长2)。
  • 全局平均池化:将每个特征图的空间维度压缩为1,输出32×1向量。
  • 回归头:全连接层(64维)→ ReLU → Dropout(0.2)→ 全连接层(1维)→ 回归输出层(均方误差损失)。

训练配置

  • 优化器:Adam,初始学习率0.001,每40轮衰减50%。
  • 轮数:120,批大小:16,验证频率:10轮/次。
  • 启用训练进度图及详细输出。

预测与后处理

  • 对训练集和测试集进行预测,将标准化预测值反变换回原始尺度。
  • 计算各类回归指标,并与原始真实值比较。

可视化输出

  • 使用tiledlayout绘制六幅子图,涵盖预测对比、散点拟合、残差分布及误差指标汇总。

四、技术路线

采用端到端的1D-CNN架构,将输入特征直接视为一维序列,通过堆叠卷积层自动提取局部相关特征,利用池化层逐步降低序列长度,最终通过全局平均池化消除序列维度并固定特征图数量,再经全连接层映射到连续输出值。

五、运行环境

  • 软件平台:MATLAB建议R2020b及以上版本





创作时间: