回归预测 | Matlab实现基于CNN-SE-Attention-ITCN多特征输入回归组合预测算法
目录
- 回归预测 | Matlab实现基于CNN-SE-Attention-ITCN多特征输入回归组合预测算法
- 预测效果
- 基本介绍
- 程序设计
- 参考资料
预测效果
基本介绍
【模型简介】CNN-SE_Attention结合了卷积神经网络(CNN)和注意力机制。在传统的CNN中,特征表示是静态的,无法适应不同任务和场景的需求。而引入SE-Attention机制后,网络能够动态地调整特征图的重要性,以更好地捕获关键特征。
已有研究表明,传统时间卷积网络难以提取输入数据的内部相关信息,扩展卷积会导致局部特征丢失,因此提出改进时间卷积网络(ITCN),模型参考以下论文。
该组合模型首先通过CNN-SE_Attention挖掘输入矩阵各影响因素与输出间的深层隐含信息,然后利用改进的TCN提取时序特征,构建长依赖关系,生成各影响因素与输出的非线性关系,对光伏功率进行回归预测。
【适用领域】光伏预测、风电预测、房价预测、股票预测等多种应用场景。
【方便使用】文件提供了详细的注释以及评价指标,直接替换数据集即可使用,无需大幅修改程序,注释清晰,易于你的理解与修改。一键运行,一键出图。
【示例】采用光伏场数据作为输入数据,包括组件温度、温度、气压、湿度等天气特征,预测光伏发电功率,具有很强的实际应用意义。输入数值天气特征,预测光伏发电功率,实现多特征输入,单特征输出。
【模型评价】有多种评价指标任你选择,为体现真实性,我用未清洗的数据进行测试,模型预测效果极佳,通过修改参数,特征工程可进一步增加预测精度。
注释清晰,适合初学者学习使用。
程序设计
- 完整源码和数据获取方式私信博主回复Matlab实现基于CNN-SE-Attention-ITCN多特征输入回归组合预测算法。
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
%% 数据反归一化
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);
%% 适应度曲线
%%
%决定系数
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;
%%
%均方误差 MSE
mse1 = sum((T_sim1 - T_train).^2)./M;
mse2 = sum((T_sim2 - T_test).^2)./N;
% CSDN 机器学习之心
参考资料
[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