Matlab实现CNN-BiLSTM时间序列预测未来

Matlab实现CNN-BiLSTM时间序列预测未来

目录

效果一览


基本介绍

1.Matlab实现CNN-BiLSTM时间序列预测未来;

2.运行环境Matlab2023b及以上,data为数据集,单变量时间序列预测;

3.递归预测未来数据,可以控制预测未来大小的数目,适合循环性、周期性数据预测;

4.命令窗口输出R2、MAE、MAPE、MBE、MSE等评价指标;

程序设计

完整源码私信回复Matlab基于WOA-MVMD鲸鱼算法优化多元变分模态分解

clike 复制代码
.rtcContent { padding: 30px; } .lineNode {font-size: 10pt; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-style: normal; font-weight: normal; }
%% 参数设置
options = trainingOptions('adam', ...     % Adam 梯度下降算法
    'MaxEpochs', 100,...                  % 最大训练次数
    'MiniBatchSize',64,...                % 批处理
    'InitialLearnRate', 0.001,...         % 初始学习率为0.001
    'L2Regularization', 0.001,...         % L2正则化参数
    'LearnRateSchedule', 'piecewise',...  % 学习率下降
    'LearnRateDropFactor', 0.1,...        % 学习率下降因子 0.1
    'LearnRateDropPeriod', 50,...         % 经过50次训练后 学习率为 0.001*0.1
    'Shuffle', 'every-epoch',...          % 每次训练打乱数据集
    'ValidationPatience', Inf,...         % 关闭验证
    'Plots', 'training-progress',...      % 画出曲线
    'Verbose', false);
%%  训练模型
net= trainNetwork(p_train, t_train, lgraph, options);
%% 预测
t_sim1 = predict(net, p_train); 
t_sim2 = predict(net, p_test ); 
%%  数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);
%%  均方根误差
error1 = sqrt(sum((T_sim1' - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2' - T_test ).^2) ./ N);
%%  相关指标计算
%  R2
R1 = 1 - norm(T_train - T_sim1')^2 / norm(T_train - mean(T_train))^2;
R2 = 1 - norm(T_test  - T_sim2')^2 / norm(T_test  - mean(T_test ))^2;
disp(['训练集数据的R2为:', num2str(R1)])
disp(['测试集数据的R2为:', num2str(R2)])
%  MAE
mae1 = sum(abs(T_sim1' - T_train)) ./ M ;
mae2 = sum(abs(T_sim2' - T_test )) ./ N ;
disp(['训练集数据的MAE为:', num2str(mae1)])
disp(['测试集数据的MAE为:', num2str(mae2)])
%% 平均绝对百分比误差MAPE
MAPE1 = mean(abs((T_train - T_sim1')./T_train));
MAPE2 = mean(abs((T_test - T_sim2')./T_test));
disp(['训练集数据的MAPE为:', num2str(MAPE1)])
disp(['测试集数据的MAPE为:', num2str(MAPE2)])
%  MBE
mbe1 = sum(abs(T_sim1' - T_train)) ./ M ;
mbe2 = sum(abs(T_sim1' - T_train)) ./ N ;
disp(['训练集数据的MBE为:', num2str(mbe1)])
disp(['测试集数据的MBE为:', num2str(mbe2)])

参考资料

1\] https://blog.csdn.net/kjm13182345320/article/details/129215161 \[2\] https://blog.csdn.net/kjm13182345320/article/details/128105718

相关推荐
机器学习之心1 个月前
BKA-CNN-BiLSTM、CNN-BiLSTM、BiLSTM、CNN四模型多变量时序光伏功率预测,附模型报告
cnn·cnn-bilstm·bilstm·bka-cnn-bilstm·四模型多变量时序光伏功率预测
机器学习之心3 个月前
CNN-BiLSTM卷积神经网络双向长短期记忆神经网络多变量多步预测,光伏功率预测
神经网络·cnn·卷积神经网络·cnn-bilstm·双向长短期记忆神经网络·光伏功率预测
机器学习之心3 个月前
SSA-TCN麻雀算法优化时间卷积神经网络时间序列预测未来Matlab实现
ssa-tcn·麻雀算法优化时间卷积神经网络·时间序列预测未来
机器学习之心3 个月前
CNN-BiLSTM卷积双向长短期记忆神经网络时间序列预测(Matlab完整源码和数据)
神经网络·matlab·cnn·cnn-bilstm
机器学习之心4 个月前
回归预测 | MATLAB实现CNN-BiLSTM-Attention多输入单输出回归预测
回归·多输入单输出回归预测·attention·cnn-bilstm
胖哥真不错9 个月前
Python基于TensorFlow实现卷积神经网络-双向长短时记忆循环神经网络分类模型(CNN-BiLSTM分类算法)项目实战
python·tensorflow·卷积神经网络·项目实战·cnn-bilstm·分类模型·双向长短时记忆循环神经网络
机器学习之心9 个月前
3D靓图!CEEMDAN-Kmeans-VMD-CNN-BiLSTM-Attention双重分解卷积双向长短期注意力多元时序预测
attention·kmeans·cnn-bilstm·ceemdan·kmeans-vmd·双重分解卷积双向长短期·注意力多元时序预测
机器学习之心1 年前
时序预测 | MATLAB实现基于CNN-BiLSTM-AdaBoost卷积双向长短期记忆网络结合AdaBoost时间序列预测
adaboost·集成学习·cnn-bilstm·时间序列预测·cnn-bilstm-ada·卷积双向长短期记忆网络
机器学习之心1 年前
SCI一区级 | Matlab实现RIME-CNN-BiLSTM-Mutilhead-Attention多变量多步时序预测
attention·cnn-bilstm·rime-cnn-bilstm·mutilhead·多变量多步时序预测