时序预测 | MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测

news2025/1/20 2:01:22

时序预测 | MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测

目录

    • 时序预测 | MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测
      • 预测效果
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

预测效果

在这里插入图片描述

在这里插入图片描述

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

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

基本介绍

1.MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测;
2.运行环境为Matlab2021b;
3.单变量时间序列预测;
4.data为数据集,excel数据,单变量时间序列,MainTCN_BiGRUTS.m为主程序,运行即可,所有文件放在一个文件夹;
5.命令窗口输出R2、MSE、RMSE、MAE、MAPE多指标评价;
TCN 模型通过一维因果卷积对过去的数据进行提取,保证时序性,残差连接加快收敛速度,扩张卷积实现时序特征提取。BiGRU模型作为循环神经网络的变种,具有非线性拟合能力,能够有效提取数据特征,且在保障得到与LSTM 相近预测效果的同时获得更快的收敛速度。文中将两者结合搭建了TCN-BiGRU模型。

模型描述

由于TCN 具有扩张因果卷积结构,拥有突出的特征提取能力,因此可对原始特征进行融合获得高维的抽象特征,加强了对特征信息的挖掘。而
BiGRU 网络具有强大的时序预测能力,将TCN 和BiGRU网络结合,通过TCN 特征提取后输入至BiGRU 网络,提高了BiGRU网络记忆单元的处理效
率,使得预测模型更有效地学习时间序列的复杂交互关系。因此,本文搭建了TCN-BiGRU预测模型。

TCN-GRU是一种将时间卷积神经网络(TCN)和门控循环单元(GRU)结合在一起的神经网络模型。TCN是一种能够处理序列数据的卷积神经网络,它能够捕捉到序列中的长期依赖关系。GRU则是一种具有记忆单元的递归神经网络,它能够处理序列数据中的短期和长期依赖。
TCN-GRU模型的输入可以是多个序列,每个序列可以是不同的特征或变量。例如,如果我们想预测某个城市未来一周的平均温度,我们可以将过去一段时间内的温度、湿度、气压等多个变量作为输入序列。模型的输出是一个值,即未来某个时间点的平均温度。
在TCN-GRU中,时间卷积层用于捕捉序列中的长期依赖关系,GRU层用于处理序列中的短期和长期依赖。多个输入序列被合并成一个张量,然后送入TCN-GRU网络进行训练。在训练过程中,模型优化目标是最小化预测输出与真实值之间的差距。
TCN-GRU模型在时间序列预测问题上表现良好,特别是对于长期依赖的序列数据。它可以被用于许多应用场景,例如股票价格预测、交通流量预测等。

程序设计

  • 完整源码和数据获取方式:私信博主回复MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测
%% 预测
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);


%%  相关指标计算

%  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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/966966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

精益创业的规划框架:愿景,战略,产品

精益创业的规划框架:愿景,战略,产品【安志强趣讲276期】 趣讲大白话:愿景管战略,战略管产品 **************************** 愿景:创业企业有个清晰的方向 愿景怎么来的?发现社会问题&#xff0c…

electron笔记无边框窗口、DLL调用、DLL函数返回指针

无边框 const win new BrowserWindow({width: 1290,height: 736,minHeight: 736,minWidth: 1040,maxHeight: 736,maxWidth: 1290,frame: false, // 无边框webPreferences: {// preload: process.env.WEBPACK_DEV_SERVER_URL ? __dirname /preload.js : app://./preload.js,…

leetcode172. 阶乘后的零(java)

阶乘后的零 题目描述巧妙的解法代码演示 上期经典 题目描述 难度 - 中等 172. 阶乘后的零 给定一个整数 n ,返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1) * (n - 2) * … * 3 * 2 * 1 示例 1: 输入:n 3 输出:0 解释&#…

【算法刷题-栈与队列篇】

目录 1.leetcode-232. 用栈实现队列2.leetcode-225. 用队列实现栈3.leetcode-20. 有效的括号(1)代码1(2)代码2 4.leetcode-1047. 删除字符串中的所有相邻重复项5.leetcode-150. 逆波兰表达式求值6.leetcode-239. 滑动窗口最大值7.…

C盘清理 “ProgramData\Microsoft\Search“ 文件夹过大

修改索引存放位置 进入控制面板->查找方式改成大图标, 选择索引选项 进入高级 填写新的索引位置 删除C盘索引信息 删除C:\ProgramData\Microsoft\Search\Data\Applications 下面的文件夹 如果报索引正在使用,参照第一步替换索引位置。关闭索引

【conan】c++包管理工具,conan教程

文章目录 介绍Build a simple CMake project using ConanUsing build tools as Conan packagesBuilding for multiple configurations:Release, Debug, Static and Shared 修改Conan profile,达到自己的编译目的Understanding the flexibility of using conanfile.p…

内网穿透神器-frp的概念,搭建和使用,方便访问内网服务

FRP概念 FRP是什么(借助官网的描述)? frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 为什么是用FR…

【斗破】魔兽山脉回归,彩鳞牵手手萧炎老公,小医仙大战美杜莎

Hello,小伙伴们,我是小郑继续为大家深度解析【斗破苍穹年番】 斗破苍穹年番动画更新了,云岚宗正式解散,云韵道别,携手纳兰嫣然闯荡中州,而萧炎联合海老,也创立了加玛帝国第一势力炎盟,有了保护萧…

DRM全解析 —— ADD_FB(2)

接前一篇文章:DRM全解析 —— ADD_FB(1) 本文参考以下博文: DRM驱动(四)之ADD_FB 特此致谢! 上一回围绕libdrm与DRM在Linux内核中的接口: DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB, d…

Linux驱动之Linux自带的LED灯驱动

目录 一、简介 二、使能Linux自带LED驱动 三、Linux内核自带LED驱动框架 四、设备树节点编写 五、运行测试 一、简介 前面我们都是自己编写 LED 灯驱动,其实像 LED 灯这样非常基础的设备驱动, Linux 内核已经集成了。 Linux 内核的 LED 灯驱动采用 …

Qt Creator 创建 Qt 默认窗口程序

Qt 入门实战教程(目录) Windows Qt 5.12.10下载与安装 使用Qt Creator 本文介绍用Qt自带的集成开发工具Qt Creator创建Qt默认的窗口程序。 本文不需要你另外安装Visual Studio 2022这样的集成开发环境,也不需要你再在Visual Studio 2022中…

OJ练习第159题——消灭怪物的最大数量

消灭怪物的最大数量 力扣链接:1921. 消灭怪物的最大数量 题目描述 你正在玩一款电子游戏,在游戏中你需要保护城市免受怪物侵袭。给你一个 下标从 0 开始 且长度为 n 的整数数组 dist ,其中 dist[i] 是第 i 个怪物与城市的 初始距离&#…

Web安全——穷举爆破下篇(仅供学习)

Web安全 一、常见的端口服务穷举1、hydra 密码穷举工具的使用2、使用 hydra 穷举 ssh 服务3、使用 hydra 穷举 ftp 服务4、使用 hydra 穷举 mysql 服务5、使用 hydra 穷举 smb 服务6、使用 hydra 穷举 http 服务7、使用 hydra 穷举 pop3 服务8、使用 hydra 穷举 rdp 服务9、使用…

在k8s中使用secret存储敏感数据与四种用法

当需要存储敏感数据时可以使用,secret会以密文的方式存储数据。 创建secret的四种方法 (1)通过--from-literal #每个--from-literal对应一个信息条目 kubectl create secret generic mysecret --from-literalusernameadmin --from-litera…

五-垃圾收集器G1ZGC详解

回顾CMS垃圾收集器 G1垃圾收集器 G1是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量处理的机器。以及高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征 物理上没有明显的物理概念,但是逻辑上还是有分代概念 物理上分…

近年GDC服务器分享合集(四): 《火箭联盟》:为免费游玩而进行的扩展

如今,网络游戏采用免费游玩(Free to Play)加内购的比例要远大于买断制,这是因为前者能带来更低的用户门槛。甚至有游戏为了获取更多的用户,选择把原来的买断制改为免费游玩,一个典型的例子就是最近的网易的…

Pytorch+Yolov3搭建自己的目标检测项目工程(带你从理论到实践)

学习目标 使用pytorch去构建一个Yolov3的项目工程。 参考的原作者的博客:睿智的目标检测26——Pytorch搭建yolo3目标检测平台 构建主干网络darknet53 yolov3采用的主干网络是darknet53,借鉴了yolov2中的网络darknet19结构,相较于后者&…

Win 教程 Win7实现隔空投送

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络&#xff0…

深入探讨梯度下降:优化机器学习的关键步骤(二)

文章目录 🍀引言🍀eta参数的调节🍀sklearn中的梯度下降 🍀引言 承接上篇,这篇主要有两个重点,一个是eta参数的调解;一个是在sklearn中实现梯度下降 在梯度下降算法中,学习率&#xf…

I2C与I3C的对比

I2C与I3C的对比 电气特性 I2C 1.半双工 2.串行数据线(SDA)和串行时钟线(SCL) 3.数据线漏极开路,即I2C接口接上拉电阻 4.I2C总线运行速度:**标准模式100kbit/s,快速模式400kbit/s,快速模式plus 1Mbit/s,**高速模式…