CNN-BiLSTM-Attention、CNN-BiLSTM、BiLSTM三模型多变量时序光伏功率预测
基本介绍
CNN-BiLSTM-Attention、CNN-BiLSTM、BiLSTM三模型多变量时序光伏功率预测 (多输入单输出)
1.程序已经调试好,替换数据集后,仅运行一个main即可运行,数据格式为excel!!!
2.CNN-BiLSTM-Attention、CNN-BiLSTM、BiLSTM三模型多变量时序光伏功率预测 (多输入单输出),考虑历史特征的影响。
3.运行环境要求MATLAB版本为2023b及其以上。
4.评价指标包括:R2、MAE、MSE、RPD、RMSE、MAPE等,图很多,符合您的需要代码中文注释清晰,质量极高。
代码主要功能
该MATLAB代码实现了一个光伏发电量预测,通过三种深度学习模型(BiLSTM、CNN-BiLSTM、CNN-BiLSTM-Attention)对北半球光伏数据进行时间序列预测,并进行全面的性能对比与可视化分析。
核心算法步骤
-
数据预处理
- 导入Excel数据(
北半球光伏数据.xlsx
) - 构造时序特征:用前4个时间步(
kim=4
)预测后1步(zim=1
) - 划分训练集(70%)和测试集(30%)
- 数据归一化(
mapminmax
)
- 导入Excel数据(
-
模型构建与训练
- BiLSTM模型:
layers = [sequenceInputLayer(f_), bilstmLayer(20), reluLayer, fullyConnectedLayer(1), regressionLayer];
- CNN-BiLSTM模型:
- 卷积层(16/32个滤波器) → 序列折叠 → BiLSTM(5单元) → 全连接层
- CNN-BiLSTM-Attention模型:
- 在CNN-BiLSTM基础上添加自注意力层(
selfAttentionLayer(4,128)
)
- 在CNN-BiLSTM基础上添加自注意力层(
- BiLSTM模型:
-
训练参数
options = trainingOptions('adam', 'MaxEpochs',500, 'InitialLearnRate',0.05, ...'LearnRateDropFactor',0.1, 'L2Regularization',0.04);
-
预测与反归一化
t_sim = predict(net, Lp_test); T_sim = mapminmax('reverse', t_sim, ps_output);
-
性能评估
- 计算5项指标:RMSE、MAE、MAPE、R²、MSE
- 多维度可视化分析
技术路线
关键参数设定
参数类型 | 参数名 | 值 | 说明 |
---|---|---|---|
数据参数 | kim | 4 | 历史时间步长 |
zim | 1 | 预测步长 | |
num_size | 0.7 | 训练集比例 | |
模型参数 | BiLSTM单元 | 20 | 隐藏层神经元数 |
CNN滤波器 | [16,32] | 卷积核数量 | |
注意力头 | 4 | numHeads | |
训练参数 | MaxEpochs | 500 | 最大迭代次数 |
InitialLearnRate | 0.002-0.05 | 初始学习率 | |
L2Regularization | 0.001-0.04 | L2正则化系数 |
运行环境要求
-
MATLAB版本:需R2023b或更高版本(依赖深度学习工具箱)
-
必要工具箱:
- Deep Learning Toolbox
- Statistics and Machine Learning Toolbox
-
文件依赖:
- 数据文件:
北半球光伏数据.xlsx
- 自定义函数:
calc_error.m
(指标计算)、radarChart.m
(雷达图绘制)
- 数据文件:
输出结果体系
- 训练过程可视化:
- 损失函数曲线
- RMSE变化曲线
- 预测结果对比:
- 训练集/测试集预测值对比曲线
- 三模型预测结果叠加对比
- 误差分析:
- 相对误差柱状图
- 雷达图(指标对比)
- 罗盘图
- 指标表格:
- 详细输出各模型RMSE/MAE/MAPE/R²/MSE
通过综合可视化手段,清晰展示CNN-BiLSTM-Attention模型在预测精度上的优势,为光伏发电量预测提供科学依据。
介绍数据集