模型组合、注意力机制在单步、多步、单变量、多变量预测中的应用

news2024/11/15 11:47:13

 往期精彩内容:

时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客

VMD + CEEMDAN 二次分解,Transformer-BiGRU预测模型-CSDN博客

独家原创 | 基于TCN-SENet +BiGRU-GlobalAttention并行预测模型-CSDN博客

独家原创 | BiTCN-BiGRU-CrossAttention融合时空特征的高创新预测模型-CSDN博客

基于LSTM网络的多步预测模型_pytorch transformer-CSDN博客

基于1DCNN网络的多步预测模型-CSDN博客

高创新 | CEEMDAN + SSA-TCN-BiLSTM-Attention预测模型-CSDN博客

基于Transformer网络的多步预测模型-CSDN博客

独家原创 | 超强组合预测模型!-CSDN博客

基于TCN网络的多步预测模型-CSDN博客

基于CNN-LSTM网络的多步预测模型-CSDN博客

时空特征融合的BiTCN-Transformer并行预测模型-CSDN博客

CEEMDAN +组合预测模型(CNN-Transfromer + XGBoost)-CSDN博客

独家首发 | 基于多级注意力机制的并行预测模型-CSDN博客

多步预测模型大更新_基于多尺度 1d-cnn 和注意力机制的汇率多步预测研究-CSDN博客

独家原创 | CEEMDAN-CNN-GRU-GlobalAttention + XGBoost组合预测-CSDN博客

回归预测模型 | LSTM、CNN、Transformer、TCN、串行、并行模型集合-CSDN博客

基于TCN-BiLSTM-Attention模型的不同任务预测详解,探索同一个模型和数据集,在四种不同任务上的表现

● 环境框架:python 3.9  pytorch 1.8 及其以上版本均可运行

● 使用对象:论文需求、毕业设计需求者

● 代码保证:代码注释详细、即拿即可跑通。

● 输出结果:训练过程MSE损失曲线图、测试集模型分数-MAE-MSE-RMSE报告、预测可视化、向外预测(预测未来数据)

包括完整流程数据代码处理:

单步-多步、单变量-多变量预测数据集制作、数据加载、模型定义、参数设置、模型训练、模型测试、预测可视化、多步预测、模型评估

模型整体介绍:

1. 时空卷积网络(TCN):

    TCN是一种卷积神经网络结构,用于捕捉时序数据中的时序关系。它由一系列的1D卷积层组成,每个卷积层都具有相同的卷积核大小和步长。TCN中的残差连接(Residual Connections)和空洞卷积(Dilated Convolutions)用于增加网络的感受野,以便更好地捕捉时序数据中的长期依赖关系。TCN可以同时处理多个时间步的输入,这使得模型能够在多个时间步上进行并行预测。

2.短期和长期依赖关系的捕捉:

  • TCN:通过卷积操作,能够有效捕捉时间序列中的短期依赖关系,同时由于其因果卷积和扩展卷积,能够处理较长的序列依赖关系。

  • BiLSTM:双向 LSTM 能够同时处理序列的前向和后向信息,捕捉序列中的长期和双向依赖关系。

  • 并行计算:TCN:卷积操作可以并行处理,相较于 RNN 的串行计算,TCN 在处理长序列时具有计算效率上的优势。

3.信息选择和权重分配:

Attention 机制:通过注意力机制,模型能够为输入序列中的不同部分分配不同的权重,从而更好地关注对预测结果有重要贡献的时间步。这有助于提高模型的预测精度和解释性。

4.稳定性和长序列处理能力:

TCN:由于使用了残差连接和扩展卷积,TCN 在处理长序列时更稳定,能够避免梯度消失和梯度爆炸问题。结合了 TCN、BiLSTM 和 Attention 的模型具有强大的表达能力,能够处理复杂的时间序列数据,并且提高预测的准确性和鲁棒性。

配有代码、文件介绍:

电力变压器数据集的详细介绍可以参考下文:

电力变压器数据集介绍和预处理-CSDN博客

1.1 导入数据

1 单变量单步预测任务

1.1 任务描述

单变量单步预测,就是只有(用)一个变量 ,用已有的数据去预测未来的数据,每次预测一步

  • 输入训练集  变量: 变量var-OT

  • 对应y值标签为:  变量var-OT

1.2 单变量单步预测预处理

1.3 模型定义-基于TCN-BiLSTM-Attention的单变量单步预测

1.4 设置参数,训练模型

1.5 预测结果可视化

1.6 模型评估

1.7 加载模型进行预测

2 单变量多步预测任务

2.1 任务描述

单变量多步预测,就是只有(用)一个变量 ,用已有的数据去预测未来的数据,每次预测多步

  • 输入数据的形状应该是 (batch_size, window_size, input_dim)

  • 输出数据的形状应该是 (batch_size, num_steps, output_dim)

解释:

  • batch_size就是批次

  • input_dim 和 output_dim 就是对应输入维度,和输出维度(如果单变量预测任务的话,就是输入输出都为1维)

  • window_size 就是输入样本序列的长度

  • num_steps 是需要预测的步长(比如:用过去 12 个步长 ,预测未来 3 个步长)

2.2 单变量多步预测预处理

2.3 模型定义-基于TCN-BiLSTM-Attention的单变量多步预测

2.4 设置参数,训练模型

2.5 预测结果可视化

每步预测单独可视化:

2.6 模型评估

2.7 加载模型进行预测

3 多变量单步预测任务

3.1 任务描述

多变量单步预测,就是有(用)多个变量的数据去预测某个目标变量未来的数据,每次预测一步

  • 输入训练集  变量: 所有特征变量(多个)

  • 对应y值标签为:  目标变量var-OT

3.2 多变量单步预测预处理

3.3 模型定义、训练过程、评估、可视化、向外预测不再赘述

多变量单步预测效果明显优于单变量单步预测效果,考虑到其他特征带来对目标变量预测更多的信息,其预测性能更显著!

4 多变量多步预测任务

4.1 任务描述

多变量多步预测,就是有(用)多个变量的数据去预测某个目标变量未来的数据,每次预测多步

  • 输入数据的形状应该是 (batch_size, window_size, input_dim)

  • 输出数据的形状应该是 (batch_size, num_steps, output_dim)

解释:

  • batch_size就是批次

  • input_dim 和 output_dim 就是对应输入维度,和输出维度(如果多变量预测任务的话,就是输入多维,输出为1维)

  • window_size 就是输入样本序列的长度

  • num_steps 是需要预测的步长(比如:用过去 12 个步长 ,预测未来 3 个步长)

4.2 多变量多步预测预处理

4.3 模型定义、训练过程、评估、可视化、向外预测不再赘述

代码、数据如下:

对数据集和代码感兴趣的,可以关注最后一行

# 加载数据
import torch
from joblib import dump, load
import torch.utils.data as Data
import numpy as np
import pandas as pd
import torch
import torch.nn as nn
# 参数与配置
torch.manual_seed(100)  # 设置随机种子,以使实验结果具有可重复性
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
 
#代码和数据集:https://mbd.pub/o/bread/ZpaWkp5q

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

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

相关文章

a newer version of WinPcap,ensp安装时候winpcap软件报错

ensp安装时候winpcap软件报错 a newer version of WinPcap… 找到C盘路径下的文件Packet.dll C:\Windows\SysWOW64 修改为:Packet.dll.1(后缀名随便改一下) 再次安装,成功

在线PS快速抠出透明背景(纯色背景+复杂背景抠图操作)

电脑硬盘快爆了,没必要安装个PS了,网上找了几个在线的PS网站,还别说,一般的PS操作都可以满足 我们使用PS通常用的较多的是抠背景操作吧,接下来演示几个在在线PS网站上进行抠背景操作 一、在线PS网站 Photopea&#x…

程序员转型人工智能:从“996”困境到拥抱光明未来

前言 在这个充满挑战与机遇的时代,各行各业的辛酸各有不同,而程序员群体无疑有着自己的独特体验。他们学习着普通人难以理解的计算机语言,工作在“996”的高压环境中,还未及中年就可能面临“聪明绝顶”的尴尬。面对行业的快速更新…

树与二叉树【中】

目录 二. 二叉树2.1 二叉树的性质2.2 二叉树的存储结构2.2.1 二叉树的顺序存储(只适合存储完全二叉树)2.2.2 二叉树的链式存储 2.3 二叉树的遍历2.3.1 先序遍历2.3.2 中序遍历2.3.3 后序遍历2.3.4 二叉树的层序遍历2.3.5 由遍历序列构造二叉树2.3.5.1 前…

【HarmonyOS】HarmonyOS NEXT学习日记:八、组件通信

【HarmonyOS】HarmonyOS NEXT学习日记:八、组件通信 通过前面的学习我们基本上掌握了如何封装组件,但是实际使用过程中组件之间的状态需要互相之间关联通讯,涉及到父子组件,后代组件之间的相互通信。 State装饰器:组…

Loader QML Type

文章目录 Loader QML Type描述属性(Properties)active : boolasynchronous : bool(异步)item : objectprogress : realsource : urlsourceComponent : Componentstatus : enumeration 信号(Signal Documentation&#…

四,搭建环境:表述层

四,搭建环境:表述层 文章目录 四,搭建环境:表述层设定 Web 工程web.xml 的配置编写配置 ContextLoaderListener配置 DispatcherServlet配置 CharacterEncodingFilter配置 HiddenHttpMethodFilter 配置 Spring MVC配置视图解析相关…

【JKI SMO】框架讲解(九)

本节内容将演示如何向SMO框架添加启动画面。 1.打开LabVIEW新建一个空白项目,并保存。 2.找到工具,打开SMO Editor。 3.新建一个SMO,选择SMO.UI.Splash。 4. 打开LabVIEW项目,可以看到项目里多了一个SystemSplash类。 打开Process…

c++11-lambda表达式,包装器function,bind

lambda表达式 lambda表达式在很多语言都是有的,c当然是有的,但是像C语言就没有这个。和很多语言相同c的lambda表达式都是为了简化代码,当我们需要传函数的时候我们就可以用lambda表达式写一个匿名函数。 书写格式: [capture-li…

【Log4j2】代码执行漏洞复现!

执行以下命令 启动命令 systemctl start dockercd vulhub/log4j/CVE-2021-44228docker-compose up -d # 访问网址 http://192.168.3.42:xxxx/solr/#/ 启动靶场环境并在浏览器访问!!! 先在自己搭建的DNSLOG平台上获取一个域名来监控我们注入的效果. 可以发现 /solr…

人工智能:所有144本SCI期刊都在这里(20本Top,4本On Hold)

本周投稿推荐 SCI&EI • 4区“水刊”,纯正刊(来稿即录) • CCF-B类,IEEE一区-Top(3天初审) EI • 各领域沾边均可(2天录用) 知网(CNKI)、谷歌学术 …

CS61C | lecture5

CS61C | lecture5 浮点数的表示 用一个小数点作为边界分隔整数部分和小数部分。 10.101 0 2 1 2 1 1 2 − 1 1 2 − 3 2.62 5 10 10.1010_{2}1\times2^11\times2^{-1}1\times2^{-3}2.625_{10} 10.10102​12112−112−32.62510​ Scientific Notation(Binary) 单精度…

.JPG图片,各种压缩率下的文件尺寸

测试结果 不改变图片幅面的情况下,cv2 jpg压缩算法: 默认quality是9550时,相应的图片尺寸是95的1/3 可用。25时,图片尺寸是1/4,仍可用。 2024/07/31 16:31 85,305 out_10.jpg 2024/07/31 16:31 …

不要怕,手把手带你做好小程序关键词优化

要想让小程序在众多同类中脱颖而出,吸引更多的用户,就必须进行有效的关键词优化。优化小程序关键词是提升小程序搜索排名和吸引目标用户的重要手段。以下是一些优化小程序关键词的具体步骤和策略: 一、关键词研究与选择 1.了解用户搜索习惯…

文件解析漏洞

IIS解析漏洞 在windows Server 2003安装iis 1.IIS6.X 1.1 目录解析 在网站下建立文件夹的名字为 .asp/.asa 的文件夹&#xff0c;其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。 先创建一个1.asp文件夹 再创建一个1.txt 里面写 <%now()%> 2.1 畸形文件…

go test单元测试

go test Go语言中的测试依赖go test命令。 go test 命令是用来运行测试代码的工具。测试代码通常与要测试的代码放在同一个包中&#xff0c;并且测试文件通常以 _test.go 结尾。 go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内&#xff0c;所有以_tes…

中国星坤拨码开关系列:为电子设备控制的提供可靠连接

在电子设备日益复杂的今天&#xff0c;控制和设置的简便性成为了用户体验的关键。中国星坤推出的拨码开关以其直观的操作界面和高可靠性&#xff0c;正在引领电子设备控制的新纪元。本文将深入探讨星坤拨码开关的主要特性、应用场景及其在现代电子设备中的重要性。 直观的人机界…

连接器表面缺陷检测方案

连接器是一种用于连接电子设备或电路中不同部件之间的组件&#xff0c;通常用于传输电力、信号或数据。连接器的设计和类型各不相同&#xff0c;以适应不同设备和应用的需求。连接器用于连接电子设备之间的电线、电缆或电路板&#xff0c;实现信号传输和电力供应。连接器设计应…

教育杂志教育杂志社教育编辑部2024年第18期目录

卷首语 “浙”里启程&#xff0c;一路“黔”行 张国军; 1 特别关注 普通高中高质量发展的九大要素——以江苏省通州湾中学为例 徐新民; 4-9 专题策划 “四史”教育融入初中历史教育教学活动探索 陈清波; 10-12 新时代加强师德师风建设的实践与认识 吴东林; 13-…