时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测
时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测
目录
- 时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测
- 预测效果
- 基本介绍
- 模型描述
- 程序设计
- 参考资料
预测效果









基本介绍
1.MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测;
2.运行环境为Matlab2021b;
3.单变量时间序列预测;
4.data为数据集,excel数据,MainTCN_LSTMTS.m为主程序,运行即可,所有文件放在一个文件夹;
5.命令窗口输出RMSE、MAE、MAPE多指标评价。
模型描述
由于TCN 具有扩张因果卷积结构,拥有突出的特征提取能力,因此可对原始特征进行融合获得高维的抽象特征,加强了对特征信息的挖掘。而
LSTM 网络具有强大的时序预测能力,将TCN 和LSTM 网络结合,通过TCN 特征提取后输入至LSTM 网络,提高了LSTM 网络记忆单元的处理效
率,使得预测模型更有效地学习时间序列的复杂交互关系。因此,本文搭建了TCN-LSTM 预测模型。

TCN-LSTM是一种将时间卷积神经网络(TCN)和长短期记忆神经网络(LSTM)结合在一起的神经网络模型。TCN是一种能够处理序列数据的卷积神经网络,它能够捕捉到序列中的长期依赖关系。LSTM则是一种具有记忆单元的递归神经网络,它能够处理序列数据中的短期和长期依赖。
TCN-LSTM模型的输入可以是多个序列,每个序列可以是不同的特征或变量。例如,如果我们想预测某个城市未来一周的平均温度,我们可以将过去一段时间内的温度、湿度、气压等多个变量作为输入序列。模型的输出是一个值,即未来某个时间点的平均温度。
在TCN-LSTM中,时间卷积层用于捕捉序列中的长期依赖关系,LSTM层用于处理序列中的短期和长期依赖。多个输入序列被合并成一个张量,然后送入TCN-LSTM网络进行训练。在训练过程中,模型优化目标是最小化预测输出与真实值之间的差距。
TCN-LSTM模型在时间序列预测和回归问题上表现良好,特别是对于长期依赖的序列数据。它可以被用于许多应用场景,例如股票价格预测、交通流量预测等。
程序设计
- 完整源码和数据获取方式:私信博主回复MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测;
%% 预测
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
相关文章:
时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测
时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测…...
代码随想录训练营二刷第十五天 | 层序遍历10道 226.翻转二叉树 101.对称二叉树 2
代码随想录训练营二刷第十五天 | 层序遍历10道 226.翻转二叉树 101.对称二叉树 2 一、102. 二叉树的层序遍历 题目链接:https://leetcode.cn/problems/binary-tree-level-order-traversal/ 思路:两次while,内层控制每一行的数量,…...
nowcoder NC10 大数乘法
题目链接: https://www.nowcoder.com/practice/c4c488d4d40d4c4e9824c3650f7d5571?tpId196&tqId37177&rp1&ru/exam/company&qru/exam/company&sourceUrl%2Fexam%2Fcompany&difficultyundefined&judgeStatusundefined&tags&tit…...
非科班菜鸡算法学习记录 | 代码随想录算法训练营第58天|| 单调栈! 739. 每日温度 496.下一个更大元素 I
739. 每日温度 输入一个数组,找比i天温度高的第一天 知识点:单调栈 状态:看思路自己写 思路: 看自己写的注释,维护一个单调栈 // 版本一 class Solution { public:vector<int> dailyTemperatures(vector<…...
【Luogu】 P5445 [APIO2019] 路灯
题目链接 点击打开链接 题目解法 转化很妙 考虑关路灯 x x x 的操作 令左边第一个未关的路灯为 L L L,右边第一个未关的路灯为 R R R,那么这一次会影响的区间即为 l ∈ [ L 1 , x ] , r ∈ [ x , R − 1 ] l\in[L1,x],\;r\in[x,R-1] l∈[L1,x],…...
Kafka3.0.0版本——消费者(独立消费者消费某一个主题中某个分区数据案例__订阅分区)
目录 一、独立消费者消费某一个主题中某个分区数据案例1.1、案例需求1.2、案例代码1.3、测试 一、独立消费者消费某一个主题中某个分区数据案例 1.1、案例需求 创建一个独立消费者,消费firstTopic主题 0 号分区的数据,所下图所示: 1.2、案…...
基于Simulink的用于电力系统动态分析
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
日200亿次调用,喜马拉雅网关的架构设计
说在前面 在40岁老架构师 尼恩的读者社区(50)中,很多小伙伴拿到一线互联网企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 最近,尼恩指导一个小伙伴简历,写了一个《API网关项目》,此项目帮这个小伙拿到 字节/阿里/微博/…...
构造函数和析构函数(个人学习笔记黑马学习)
构造函数:主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用。析构函数:主要作用在于对象销毁前系统自动调用,执行一些清理工作。 #include <iostream> using namespace std;//对象初始化和清理class…...
GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图教程
详情点击链接:GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图教程 前沿 GPT对于每个科研人员已经成为不可或缺的辅助工具,不同的研究领域和项目具有不同的需求。 如在科研编程、绘图领域: 1、编程建议和示例代码: 无论你使用的编程语言是…...
Git上传新项目
第一步:初始化 Git 仓库 首先,打开终端或命令行界面,然后导航到项目目录。运行下面的命令来初始化一个新的 Git 仓库: git init这将创建一个新的 .git 子目录,其中包含了初始化的 Git 仓库。 第二步:添加…...
C语言文件操作总结
目录 字符方式读入文件 数据块方式读写文件 文件定位与随机读写 文件中数据的修改 字符方式读入文件 1.向文件中写入(输入字符) 用 fputc 函数或 puts 函数可以把一个字符写到磁盘文件中去。 int fputc(int ch,FILE * fp) ch 是要输出的字符&#…...
原生js之dom如何进行事件监听(事件捕获/冒泡)
那么好,这次主要讲解的就是dom是如何进行事件监听和事件取消监听的,我们知道vue中主要用watch来进行监听. js监听与取消监听 那么原生js主要用到的就是addListenEvent事件来进行监听,可以监听文档dom对象也可以监听浏览器bom对象,监听事件的语法结构如下 Dom/Bom监听 eleme…...
使用SimPowerSystems并网光伏阵列研究(Simulink实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
BUUCTF-WEB-[ACTF2020 新生赛]Includel
打开靶机 点击tips 利用Burp抓包,未见异常 但发现了响应头是 PHP/7.3.13 想到了"php://input"伪协议POST发送PHP代码 构建Payload:?filephp://filter/readconvert.base64-encode/resourceflag.php 这里需要注意的是使用php://filter伪协议…...
算法通关村十四关:白银挑战-堆能高效解决的经典问题
白银挑战-堆能高效解决的经典问题 1.在数组中找第K大的元素 LeetCode215 https://leetcode.cn/problems/kth-largest-element-in-an-array/ 思路分析 主要解决方法有3个,选择法,堆查找法和快速排序法 方法1:选择法 先遍历一遍找到最大的…...
跨站请求伪造(CSRF)攻击与防御原理
跨站请求伪造(CSRF) 1.1 CSRF原理 1.1.1 基本概念 跨站请求伪造(Cross Site Request Forgery,CSRF)是一种攻击,它强制浏览器客户端用户在当前对其进行身份验证后的Web 应用程序上执行非本意操作的攻击&a…...
从0到1实现播放控制器
这系列文章主要讲诉如何从0到1使用QT实现带时间显示、滚动字幕等的自定义配置视频播放控制器。平时我们乘坐地铁经常看到各条线的播放控制器都大同小异。其实都是通过QT等界面开发软件来实现的。 在具体开发之前,需要明确我们需要做什么? 1. 开发一个可…...
【Vue-Element-Admin】导出el-table全部数据
背景 因为el-table实现了分页查询,所以想要实现el-table需要重新编写一个查询全部数据的方法 查询全部数据 listQuery: export default{return{listQuery:{//page:1,//limit:20,//如果想兼容按条件导出,可以定义查询条件age:undefined,sex:undefined…...
MFC 更改控件的大小和位置
获取当前主窗体的位置rect CRect dlgNow;GetWindowRect(&dlgNow);获取某一个控件当前的位置 CRect rect;CButton* pBtn (CButton*)GetDlgItem(IDC_BUTTONXXX);//获取按钮控件pBtn->GetWindowRect(rect);CWnd* pWnd(CWnd*)GetDlgItem(IDC_EDITXXX);//其它控件࿰…...
神经网络辅助可变形匹配滤波器在光通信中的应用
1. 神经网络辅助可变形匹配滤波器技术解析在光通信系统中,匹配滤波器作为信号检测的关键组件,其性能直接影响整个通信链路的可靠性。传统固定匹配滤波器基于理想信道假设设计,当面对实际系统中的带宽限制、大气湍流等复杂信道条件时ÿ…...
【限时解密】Claude 3.5 Sonnet专属编程模式:仅开放给前500家企业的上下文感知补全协议
更多请点击: https://kaifayun.com 第一章:Claude 3.5 Sonnet编程辅助的核心能力边界与适用场景 Claude 3.5 Sonnet 在编程辅助领域展现出显著的推理深度与上下文理解能力,但其本质仍是基于大规模语言模型的生成式系统,不具备实时…...
Shutter Encoder:构建高效媒体工作流的FFmpeg图形化解决方案
Shutter Encoder:构建高效媒体工作流的FFmpeg图形化解决方案 【免费下载链接】shutter-encoder A professional video compression tool accessible to all, mostly based on FFmpeg. 项目地址: https://gitcode.com/gh_mirrors/sh/shutter-encoder 在数字媒…...
宏裕塑胶高性能RTP导电塑料,打造卓越导电材料新标杆
导读:在高端制造领域,导电塑料的性能直接决定产品的可靠性与竞争力。宏裕塑胶高性能RTP导电塑料,通过整合美国RTP公司尖端技术,正在重新定义行业标准,为电子、汽车、医疗等领域提供稳定高效的解决方案。宏裕塑胶高性能…...
Unity 2022工程实践避坑指南:AssetBundle、URP与Job System深度解析
1. 为什么“Unity 2022 游戏开发实用指南(二)”这个标题背后藏着一整套被低估的工程实践体系很多人看到“Unity 2022 实用指南”就下意识划走——不就是换了个版本号的API文档搬运工?但我在带三个独立游戏团队落地项目时发现,真正…...
别再死记硬背了!用这20个Blender核心快捷键,5分钟搞定模型贴图基础操作
别再死记硬背了!用这20个Blender核心快捷键,5分钟搞定模型贴图基础操作 第一次打开Blender时,那个密密麻麻的界面和复杂的菜单系统确实容易让人望而生畏。但别担心,今天我要分享的这套快捷键组合,能让你像专业建模师一…...
C++中多才多艺的 const
1. 定义一个常全局变量1const int global 100; // 初始化之后不可再赋值这样的global实际上是一个常量,这是C用来取代宏定义的其中一种措施,const常量有类型检测,提高编译器的效率。2. 定义常指针这有两个版本,分别是:…...
如何通过NVIDIA Profile Inspector深度优化游戏性能:解锁显卡隐藏设置的完整指南
如何通过NVIDIA Profile Inspector深度优化游戏性能:解锁显卡隐藏设置的完整指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾经感到困惑,为什么同样的显卡配置&…...
Hackbar收费了怎么办?手把手教你配置Tampermonkey脚本实现类似功能(附常用脚本分享)
Hackbar收费后的完美替代方案:Tampermonkey脚本实战指南 当Hackbar从免费转向收费模式时,许多安全研究人员和开发者都感到措手不及。这款曾经被誉为"渗透测试瑞士军刀"的浏览器插件突然变成了付费墙后的工具,让不少用户开始寻找替…...
鸣潮自动化终极指南:解放双手,轻松享受游戏乐趣的完整解决方案
鸣潮自动化终极指南:解放双手,轻松享受游戏乐趣的完整解决方案 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves …...
