该代码实现了一个基于一维卷积神经网络(1D-CNN)的多变量回归预测模型,可用于处理固定长度的序列输入,适用于多输入单输出的回归任务。以下从八个方面对其进行简要概述。
一、研究背景
随着工业物联网和传感器技术的发展,多变量时序预测问题日益普遍。传统方法(如MLP)直接展平特征会丢失局部相关性,而1D-CNN能够有效提取序列中的局部模式,在保持较低参数量的同时获得良好的预测性能。本代码以7个特征作为固定长度序列,构建轻量级1D-CNN进行回归预测,可作为多变量回归问题的通用基线模型。
二、主要功能
- 数据加载与预处理:从Excel文件读取7个输入特征和1个输出变量,完成训练/测试集划分及Z‑score标准化。
- 1D-CNN模型构建:通过卷积、池化、全局平均池化、全连接层搭建回归网络。
- 模型训练与验证:使用Adam优化器,在训练过程中监控测试集误差,绘制训练进度曲线。
- 多指标评估:计算训练集和测试集的RMSE、R²、MAE、MAPE、SMAPE五项指标。
- 可视化分析:生成真实值与预测值对比图、散点图、残差直方图及误差指标柱状图,全面评估模型效果。
三、算法步骤
数据准备
- 加载
data.xlsx,取前7列作为输入X,第8列作为输出Y。 - 以80%/20%比例随机划分训练/测试集(固定随机种子42)。
- 基于训练集计算均值和标准差,对
X和Y分别进行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及以上版本