




一、研究背景
该代码实现了一种基于贝叶斯优化(BO)的 CNN-GRU 混合神经网络模型,用于多输出回归预测任务。结合了卷积神经网络(CNN)的特征提取能力和门控循环单元(GRU)的时间序列建模能力,适用于具有时空特征的多变量预测问题,如能源预测、气象预测、金融预测等。
二、主要功能
- 数据预处理:包括数据打乱、归一化、训练/测试集划分。
- 模型构建:构建一个包含卷积层、GRU层和全连接层的混合网络。
- 超参数优化:使用贝叶斯优化自动调整 GRU 单元数、学习率、L2 正则化系数。
- 模型训练与预测:训练 CNN-GRU 模型并进行多步预测。
- 可视化分析:提供预测对比图、拟合效果图、误差分布图、优化过程图等。
- 性能评估:计算 R²、MAE、MAPE、RMSE 等多种评价指标。
三、算法步骤
- 数据导入与划分 → 2. 数据归一化与格式转换 → 3. 贝叶斯超参数优化 → 4. 构建 CNN-GRU 网络 → 5. 模型训练 → 6. 预测与反归一化 → 7. 结果可视化与评估。
四、技术路线
- 特征提取:使用两层卷积网络提取空间特征。
- 时序建模:使用 GRU 层处理序列依赖。
- 超参数优化:采用贝叶斯优化(Gaussian Process)高效搜索参数空间。
- 回归输出:全连接层 + 回归层实现多输出回归。
五、公式原理
- 卷积操作 :
Y = ReLU ( W ∗ X + b ) Y = \text{ReLU}(W * X + b) Y=ReLU(W∗X+b) - GRU 更新机制 :
z t = σ ( W z ⋅ [ h t − 1 , x t ] ) r t = σ ( W r ⋅ [ h t − 1 , x t ] ) h ~ t = tanh ( W ⋅ [ r t ⊙ h t − 1 , x t ] ) h t = ( 1 − z t ) ⊙ h t − 1 + z t ⊙ h ~ t z_t = \sigma(W_z \cdot [h_{t-1}, x_t])\\ r_t = \sigma(W_r \cdot [h_{t-1}, x_t])\\ \tilde{h}t = \tanh(W \cdot [r_t \odot h{t-1}, x_t])\\ h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t zt=σ(Wz⋅[ht−1,xt])rt=σ(Wr⋅[ht−1,xt])h~t=tanh(W⋅[rt⊙ht−1,xt])ht=(1−zt)⊙ht−1+zt⊙h~t - 贝叶斯优化:基于高斯过程建模目标函数,通过采集函数(如EI)选择下一组参数。
六、参数设定
| 参数 | 说明 | 范围/取值 |
|---|---|---|
NumOfUnits |
GRU 隐藏层单元数 | [10, 50] |
InitialLearnRate |
初始学习率 | [1e-3, 1](对数尺度) |
L2Regularization |
L2 正则化系数 | [1e-10, 1e-2](对数尺度) |
MaxEpochs |
训练轮数 | 100 |
MiniBatchSize |
批大小 | 64 |
outdim |
输出维度 | 3 |
七、运行环境
- 平台:MATLAB(建议 R2020b 及以上)
- 数据格式 :Excel 文件(
data.xlsx)
八、应用场景
- 能源负荷预测
- 空气质量指数预测
- 交通流量预测
- 股票价格预测
- 工业过程参数预测