EI级 | Matlab实现TCN-GRU-MATT、TCN-GRU、TCN、GRU多变量时间序列预测对比

TCNGRUMATTTCNGRUTCNGRU_0">EI级 | Matlab实现TCN-GRU.html" title=TCN-GRU>TCN-GRU-MATT.html" title=TCN-GRU.html" title=TCN-GRU>TCN-GRU-MATT>TCN-GRU.html" title=TCN-GRU>TCN-GRU-MATT、TCN-GRU.html" title=TCN-GRU>TCN-GRUTCNGRU多变量时间序列预测对比

目录

预测效果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本介绍

【EI级】Matlab实现TCN-GRU.html" title=TCN-GRU>TCN-GRU-MATT.html" title=TCN-GRU.html" title=TCN-GRU>TCN-GRU-MATT>TCN-GRU.html" title=TCN-GRU>TCN-GRU-MATT、TCN-GRU.html" title=TCN-GRU>TCN-GRUTCNGRU多变量时间序列预测对比
1.data为数据集,格式为excel,4个输入特征,1个输出特征,考虑历史特征的影响,多变量时间序列预测
2.Mian1_TCN.m(时间卷积神经网络)、Mian2_GRU.m(门控循环单元)、Mian3_TCN_GRU.m(时间卷积门控循环单元)、Mian4_TCN_GRU_MATT.m(时间卷积门控循环单元融合多头注意力机制)为主程序文件,运行即可;
3.命令窗口输出R2、MAE、MAPE、MSE和RMSE,可在下载区获取数据和程序内容;
注意程序和数据放在一个文件夹,运行环境为Matlab2023a及以上。
多头自注意力层 (Multihead-Self-Attention):Multihead-Self-Attention多头注意力机制是一种用于模型关注输入序列中不同位置相关性的机制。它通过计算每个位置与其他位置之间的注意力权重,进而对输入序列进行加权求和。注意力能够帮助模型在处理序列数据时,对不同位置的信息进行适当的加权,从而更好地捕捉序列中的关键信息。在时序预测任务中,注意力机制可以用于对序列中不同时间步之间的相关性进行建模。

数据集:
在这里插入图片描述

程序设计


% 训练集和测试集划分
outdim = 1;                                  % 最后一列为输出
num_size = 0.7;                              % 训练集占数据集比例
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim;                  % 输入特征维度


P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);

P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);

%  数据归一化
[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);

%  参数设置
options0 = trainingOptions('adam', ...                 % 优化算法Adam
    'MaxEpochs', 150, ...                            % 最大训练次数
    'GradientThreshold', 1, ...                       % 梯度阈值
    'InitialLearnRate', 0.01, ...         % 初始学习率
    'LearnRateSchedule', 'piecewise', ...             % 学习率调整
    'LearnRateDropPeriod',100, ...                   % 训练100次后开始调整学习率
    'LearnRateDropFactor',0.001, ...                    % 学习率调整因子
    'L2Regularization', 0.001, ...         % 正则化参数
    'ExecutionEnvironment', 'cpu',...                 % 训练环境
    'Verbose', 1, ...                                 % 关闭优化过程
    'Plots', 'none');                    % 画出曲线

参考资料

[1] https://blog.csdn.net/kjm13182345320/category_11799242.html?spm=1001.2014.3001.5482
[2] https://blog.csdn.net/kjm13182345320/article/details/124571691


http://www.niftyadmin.cn/n/5382633.html

相关文章

深入解析机器学习:原理、应用与未来

在当今这个数据驱动的时代,机器学习(Machine Learning,简称ML)已经成为科技领域最热门的话题之一。它不仅改变了我们的生活方式,还推动了各行各业的创新与发展。那么,机器学习究竟是什么?它如何…

10_Java泛型

一、为什么要有泛型 1.泛型的设计背景 集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分…

计算机设计大赛 深度学习交通车辆流量分析 - 目标检测与跟踪 - python opencv

文章目录 0 前言1 课题背景2 实现效果3 DeepSORT车辆跟踪3.1 Deep SORT多目标跟踪算法3.2 算法流程 4 YOLOV5算法4.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 *…

WEB服务器的超级防护——安全WAF

随着网络和信息技术的不断发展,特别是互联网的广泛普及和应用,网络正在逐步改变人类的生活和工作方式。越来越多的政府和企业组织建立了依赖于网络的业务信息系统,例如电子政务、网络办公等。网络也对社会各行各业产生了巨大的影响&#xff0…

【Azure 架构师学习笔记】- Azure Databricks (7) --Unity Catalog(UC) 基本概念和组件

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog 前言 在以前的Databricks中,主要由Workspace和集群、SQL Warehouse组成, 这两年Databricks公…

Android 应用使用情况统计

Android 应用使用情况统计 本篇文章简单记录下android中usageStatsManager的简单使用. UsageStatsManager提供对设备使用历史记录和统计信息的访问,时间周期为days, weeks, months, and years. 1: 权限申请 <uses-permissionandroid:name"android.permission.PACKA…

中科大计网学习记录笔记(十三):UDP 套接字编程 | 传输层概述和传输层的服务

前言&#xff1a; 学习视频&#xff1a;中科大郑烇、杨坚全套《计算机网络&#xff08;自顶向下方法 第7版&#xff0c;James F.Kurose&#xff0c;Keith W.Ross&#xff09;》课程 该视频是B站非常著名的计网学习视频&#xff0c;但相信很多朋友和我一样在听完前面的部分发现信…

新鼠标的长宽高

今天的鼠标终于开始追求轻量化了&#xff0c;博主手比较小&#xff0c;一直追求最小最轻的鼠标&#xff0c;本表格收集主流鼠标的长宽高&#xff0c;如果不全可以楼主加上&#xff1a; 名称 长 宽 高 重量 雷蛇炼狱蝰蛇 迷你版 118 53 38 61 雷蛇炼狱蝰蛇 V2 迷你版…