回归预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测

回归预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测

目录

    • 回归预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测
      • 预测效果
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

预测效果

1

2
3
4
5

6
7

基本介绍

1.MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测;
2.运行环境为Matlab2021b;
3.输入多个特征,输出单个变量,多变量回归预测;
4.data为数据集,excel数据,前7列输入,最后1列输出,MainTCN_BiLSTMNN.m为主程序,运行即可,所有文件放在一个文件夹;
5.命令窗口输出RMSE、MAE、MAPE多指标评价。

模型描述

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

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

程序设计

  • 完整源码和数据获取方式1:私信博主回复MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测
  • 完整程序和数据下载方式2(订阅《组合优化》专栏,同时获取《组合优化》专栏收录的任意8份程序,数据订阅后私信我获取):MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络多输入单输出回归预测
%% 预测
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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CleanMyMac X4.14.1中文版如何清理 Mac系统?CleanMyMac 真的能断网激活吗?

CleanMyMac X4.14.1中文版如何清理 Mac系统?Mac系统在使用过程中都会产生大量系统垃圾,如不需要的系统语言安装包,视频网站缓存文件,mac软件卸载残留的注册表等。 随着时间推移,mac系统垃圾就会越来越多,电…

美团小图币代挂教程

登陆美团官网获取对应的cookie 美团官网,点击右上角登陆对应账号。登陆成功后使用f12来获取 cookie 此时如果没有任何数据,点击网页刷新。找到如下的网络请求 赋值cookie项的全部内容,此时已经获取到对应账号的cookie 使用cookie登陆代挂…

Web博客项目及jwt的学习

这几天完善了发布博客,完成了收藏博客的功能 博客项目 一共有三种身份: 访客(未登录),用户,管理员。 其中管理员拥有的功能最多,其次是用户,然后是访客。 从功能上看&#xff1a…

一文3000字从0到1使用Selenium进行自动化测试

对于很多刚入门的测试新手来说,大家都将自动化测试作为自己职业发展的一个主要阶段。可是,在成为一名合格的自动化测试工程师之前,我们不仅要掌握相应的理论知识,还要进行大量的实践,积累足够的经验,以便快…

7.7 SpringBoot实战 管理员借阅审核列表 --分页和枚举的使用

文章目录 前言一、需求二、定义接口 BookAdminController三、核心实现 BookBorrowService新建 BookBorrowService 接口定义如下:新建 BookBorrowServiceImpl 类,核心实现逻辑:新建 BookBorrowBO 四、图书借阅状态枚举 BookBorrowStatusEnum五…

华为数通HCIA-数通网络基础

基础概念 通信:两个实体之间进行信息交流 数据通信:网络设备之间进行的通信 计算机网络:实现网络设备之间进行数据通信的媒介 园区网络(企业网络)/私网/内网:用于实现园区内部互通,并且需要部…

better scoll的使用以及注意事项以及左联右

下载better scoll的核心 在你要使用的页面引入 在data里面定义一个对象 然后在createad里面放一个nexttick异步操作。 上面是获取这个left-box节点是父节点 记住里面只能有一个子节点如果循环了 就要再包一个div就是一个子节点 左联右 首先也要获取 右边的 父节点 然后配…

(树) 剑指 Offer 28. 对称的二叉树 ——【Leetcode每日一题】

❓ 剑指 Offer 28. 对称的二叉树 难度:简单 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1/ \2 2/ \ / \3 4 4 3但是下面这个…

了解Unity编辑器之组件篇Layout(八)

Layout:用于管理和控制UI元素的排列和自动调整一、Aspect Ratio Fitter:用于根据宽高比自动调整UI元素的大小 Aspect Mode:用于定义纵横比适配的行为方式。Aspect Mode属性有以下几种选项: (1)None&#xf…

安全学习DAY12_信息打点-Web应用信息搜集

信息打点-Web应用 文章目录 信息打点-Web应用业务资产企业查信息的目的 Web应用信息搜集Web网站域名搜集WEB单域名WEB子域名OneForAll(子域名收集工具) WEB网站架构资产WEB指纹识别资产 常用查询平台汇总查企业信息查备案信息查公众号信息域名注册查询IP…

基于 Docker 的深度学习环境:Windows 篇

本篇文章,我们聊聊如何在 Windows 环境下使用 Docker 作为深度学习环境,以及快速运行 SDXL 1.0 正式版,可能是目前网上比较简单的 Docker、WSL2 配置教程啦。 写在前面 早些时候,写过一篇《基于 Docker 的深度学习环境&#xff…

幅度调制与角度调制

文章目录 前言一、调制简介1、调制定义2、调制目的3、调制的分类 二、幅度调制(线性调制)1、幅度调制的一般模型2、常规双边带调幅 AM①、AM 信号的产生②、AM 调制器的模型③、AM 波形和频谱④、AM 信号的特点⑤、AM 包络检波⑥、调幅系数 3、抑制载波双…

【用IDEA基于Scala2.12.18开发Spark 3.4.1 项目】

目录 使用IDEA创建Spark项目设置sbt依赖创建Spark 项目结构新建Scala代码 使用IDEA创建Spark项目 打开IDEA后选址新建项目 选址sbt选项 配置JDK debug 解决方案 相关的依赖下载出问题多的话,可以关闭idea,重启再等等即可。 设置sbt依赖 将sbt…

neo4j教程-Cypher操作

Cypher基础操作 Cypher是图形存储数据库Neo4j的查询语言,Cypher是通过模式匹配Neo4j数据库中的节点和关系,从而对数据库Neo4j中的节点和关系进行一系列的相关操作。 下面,通过一张表来介绍一下常用的Neo4j操作命令及相关说明,具…

基于峰谷分时电价引导下的电动汽车充电负荷优化(matlab代码)

目录 1 主要内容 峰谷电价优化 电动汽车充电负荷变化 2 部分代码 3 程序结果 1 主要内容 该程序基本复现《基于峰谷分时电价引导下的电动汽车充电负荷优化》,代码主要做的是基于NSGA-II的电动汽车充电负荷优化,首先,在研究电动汽车用户充…

【VSCode部署模型】导出TensorFlow2.X训练好的模型信息

参考tensorflow2.0 C加载python训练保存的pb模型 经过模型训练及保存,我们得到“OptimalModelDataSet2”文件夹,模型的保存方法(.h5或.pb文件),参考【Visual Studio Code】c/c部署tensorflow训练的模型 其中“OptimalModelDataSet2”文件夹保…

HDFS中namenode安全模式

HDFS中namenode安全模式 安全模式的现象探究step1step2step3step4 安全模式的概述控制进入时间和离开条件安全模式自动进入离开安全模式手动进入离开 安全模式的现象探究 step1 HDFS集群在停机状态下,使用hdfs -daemon命令逐个进程启动集群,观察现象首…

太猛了,靠“吹牛”过顺丰一面,月薪30K

说在前面 在40岁老架构师尼恩的(50)读者社群中,经常有小伙伴,需要面试美团、京东、阿里、 百度、头条等大厂。 下面是一个5年小伙伴成功拿到通过了顺丰面试,拿到offer,月薪30K。 现在把面试真题和参考答…

音视频——压缩原理

H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛, 最流行的。随着 x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。 但为了用好H264,我们还是要对…

【KVC补充 Objective-C语言】

一、KVC补充 好,那么接下来,再给大家说一下这个KVC 1.首先我们说,这个KVC,就是指的什么 key value coding 吧 全称就是叫做(Key Value Coding),这是它的全称 那么,你在帮助文档里面搜的时候,你就搜key-value coding 是不是这个啊,key-value coding 然后点击,进…