聚划算!Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测
聚划算!Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测
目录
- 聚划算!Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测
- 预测效果
- 基本介绍
- 程序设计
- 参考资料
预测效果
基本介绍
聚划算!Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测
Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测 (Matlab2023b 多输入单输出)
Transformer-LSTM:结合了 Transformer 和 LSTM 的模型,Transformer 主要处理序列中的全局依赖关系,而 LSTM 则更专注于序列中的局部依赖关系。这种组合可能在某些数据集上提供更好的性能。
Transformer:Transformer 是一种基于自注意力机制的模型,适用于处理序列数据。它在处理长距离依赖性和并行化方面表现出色。
CNN-LSTM:CNN-LSTM 结合了卷积神经网络 (CNN) 和长短期记忆网络 (LSTM),CNN 用于提取特征,LSTM 用于处理序列数据。
LSTM:长短期记忆网络是一种适用于处理序列数据的循环神经网络,能够捕捉长期依赖关系,常用于序列预测等任务。
CNN:卷积神经网络通常用于处理图像数据,但也可以在序列数据上表现良好,特别是在捕捉局部模式和特征方面具有优势。
1.程序已经调试好,替换数据集后,仅运行一个main即可运行,数据格式为excel!!!
2.Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测 (Matlab2023b 多输入单输出)。
3.运行环境要求MATLAB版本为2023b及其以上。
4.评价指标包括:R2、MAE、MSE、RPD、RMSE、MAPE等,图很多,符合您的需要代码中文注释清晰,质量极高。
程序设计
- 完整源码和数据获取方式私信回复Transformer-LSTM、Transformer、CNN-LSTM、LSTM、CNN五模型多变量回归预测。
%% 预测
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)])%均方误差 MSE
mse1 = sum((T_sim1' - T_train).^2)./M;
mse2 = sum((T_sim2' - T_test).^2)./N;disp(['训练集数据的MSE为:', num2str(mse1)])
disp(['测试集数据的MSE为:', num2str(mse2)])
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/128577926?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/128573597?spm=1001.2014.3001.5501