区间预测 | MATLAB实现基于QRCNN-BiLSTM-Multihead-Attention卷积神经网络结合双向长短期记忆神经网络多变量时间序列区间预测

news2024/12/23 17:03:11

区间预测 | MATLAB实现QRCNN-BiLSTM-Multihead-Attention卷积神经网络结合双向长短期记忆神经网络多变量时间序列区间预测

目录

    • 区间预测 | MATLAB实现QRCNN-BiLSTM-Multihead-Attention卷积神经网络结合双向长短期记忆神经网络多变量时间序列区间预测
      • 效果一览
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

效果一览

1
2

3
4
5
6
7

基本介绍

1.Matlab实现基于QRCNN-BiLSTM-Multihead-Attention卷积神经网络结合双向长短期记忆神经网络多头注意力多变量时间序列区间预测;
2.多图输出、点预测多指标输出(MAE、MAPE、RMSE、MSE、R2),区间预测多指比输出(区间覆盖率PICP、区间平均宽度百分比PINAW),多输入单输出,含点预测图、不同置信区间预测图、误差分析图、核密度估计概率密度图;
区间覆盖率为:0.44848,区间平均宽度百分比为:5.7921
3.data为数据集,功率数据集,用多个关联变量,预测最后一列功率数据,也可适用于负荷预测、风速预测;MainQRCNN_BiLSTM_MATTNTS为主程序,其余为函数文件,无需运行;
4.代码质量高,注释清楚,含数据预处理部分,处理缺失值,如果为nan,则删除,也含核密度估计;
5.运行环境Matlab2021及以上。

模型描述

  • QRCNN-BiLSTM-Multihead-Attention是一种用于处理序列数据的神经网络结构,例如文本或时间序列数据。该结构由四个主要组件组成:
  1. CNN-BiLSTM:该层是一种卷积神经网络,用于处理具有准循环结构的序列数据。它结合了CNN和RNN的优点,既可以实现高效的并行处理,又可以捕捉长期依赖关系。

  2. BiLSTM (双向长短期记忆网络):该层是一种递归神经网络,用于双向处理序列数据。它使网络能够捕捉到正向和反向方向上的依赖关系。

  • 在时间步t处,BiLSTM层的输出,表示为h_t,计算如下:

  • h_t = [h_t^f; h_t^b] = [LSTM^f(x_t); LSTM^b(x_t)]

  • 其中,LSTMf和LSTMb分别是前向和后向LSTM单元,[;]表示连接。

  1. Multihead Attention:该层是一种注意力机制,允许网络有选择地关注输入序列的不同部分。它通过并行计算多个注意力头来实现这一点,每个注意力头关注输入序列的不同部分。
  • 在时间步t处,Multihead Attention层的输出,表示为h_t^*,计算如下:

  • h_t^* = Concat(head_1, head_2, …, head_k) * W^o

  • 其中,k是注意力头的数量,head_i是第i个注意力头,W^o是可学习的参数。每个注意力头计算如下:

  • head_i = Attention(q_i, K, V) = softmax(\frac{q_i K^T}{\sqrt{d_k}}) V

  • 其中,q_i是第i个查询向量,K和V是键和值向量,d_k是键向量的维度。

  1. 输出层:该层将前面的层的输出作为输入,最终输出预测结果,例如分类或回归。
  • 模型的输出,表示为y,计算如下:

  • y = softmax(W^h * h_T^* + b)

  • 其中,h_T^*是Multihead Attention层在最后一个时间步的输出,W^h和b是可学习的参数。softmax函数用于获得可能输出类别的概率分布。

程序设计

  • 完整程序和数据获取方式:私信博主。
ntrain=round(nwhole*num_size);
	ntest =nwhole-ntrain;
	% 准备输入和输出训练数据
	input_train =input(:,temp(1:ntrain));
	output_train=output(:,temp(1:ntrain));
	% 准备测试数据
	input_test =input(:, temp(ntrain+1:ntrain+ntest));
	output_test=output(:,temp(ntrain+1:ntrain+ntest));
	%% 数据归一化
	method=@mapminmax;
	[inputn_train,inputps]=method(input_train);
	inputn_test=method('apply',input_test,inputps);
	[outputn_train,outputps]=method(output_train);
	outputn_test=method('apply',output_test,outputps);
	% 创建元胞或向量,长度为训练集大小;
	XrTrain = cell(size(inputn_train,2),1);
	YrTrain = zeros(size(outputn_train,2),1);
	for i=1:size(inputn_train,2)
		XrTrain{i,1} = inputn_train(:,i);
		YrTrain(i,1) = outputn_train(:,i);
	end
	% 创建元胞或向量,长度为测试集大小;
	XrTest = cell(size(inputn_test,2),1);
	YrTest = zeros(size(outputn_test,2),1);
	for i=1:size(input_test,2)
		XrTest{i,1} = inputn_test(:,i);
		YrTest(i,1) = outputn_test(:,i);
	end

	%% 创建混合网络架构
%%  区间覆盖率
RangeForm = [T_sim(:, 1), T_sim(:, end)];
Num = 0;

for i = 1 : length(T_train)
    Num = Num +  (T_train(i) >= RangeForm(i, 1) && T_train(i) <= RangeForm(i, 2));
end

picp = Num / length(T_train);     


    S = cumtrapz(X,Y);
    Index = find(abs(m-S)<=1e-2);
    Q = X(max(Index));


参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340

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

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

相关文章

chatgpt赋能python:Python冒泡排序:理解流程图

Python冒泡排序&#xff1a;理解流程图 当涉及到排序算法时&#xff0c;Python中最流行的算法之一就是冒泡排序。它是一种简单而有效的排列方法&#xff0c;旨在让列表中的元素按升序或降序排列。在此文章中&#xff0c;我们将讨论冒泡排序的流程图&#xff0c;并重点介绍每个…

JavaWeb18(文件上传富文本编辑器)

目录 一、富文本编辑器 1.1 什么是富文本编辑器? 1.2 CKEditor 1.3 CKEditor 4的使用步骤【参考官方文档】 1.4 优化商品增加、查看、修改功能 1.5 尝试课外扩展其他富文本编辑器 二、文件上传 2.1 到底客户端的文件是上传到哪里? 2.2 SmartUpload是什么? 2.3 Sma…

聚观早报 |ChatGPT之父称AI可能灭绝人类;Kindle本月关闭电子书店

今日要闻&#xff1a;马斯克到访特斯拉上海超级工厂&#xff1b;ChatGPT之父称AI可能灭绝人类&#xff1b;Kindle本月关闭电子书店&#xff1b;FF91将进入交付阶段&#xff1b;iPhone14最高降1900元 马斯克到访特斯拉上海超级工厂 6 月 1 日消息&#xff0c;据航班APP信息显示…

记录--面试官:“你知道什么情况下 HTTPS 不安全么”

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 面试官&#xff1a;“HTTPS的加密过程你知道么&#xff1f;” 我&#xff1a;“那肯定知道啊。” 面试官&#xff1a;“那你知道什么情况下 HTTPS 不安全么” 我&#xff1a;“这....” 越面觉得自己越…

LEAP模型(能源环境发展、碳排放建模预测及不确定性分析)

在国家“3060”碳达峰碳中和的政策背景下&#xff0c;如何寻求经济-能源-环境的平衡有效发展是国家、省份、城市及园区等不同级别经济体的重要课题。根据国家政策、当地能源结构、能源技术发展水平以及相关碳排放指标制定合理有效的低碳能源发展规划需要以科学准确的能源环境发…

在金融数据里挖呀挖,GaussDB开出了花

北京是首都&#xff0c;上海是魔都&#xff0c;那深圳是什么&#xff1f;如果在网上问这个问题&#xff0c;网友会告诉你&#xff0c;深圳是“搞钱之都”。 金融在深圳扮演着关键角色&#xff0c;金融产业的配套数字化基础设施地位也自然也非常重要。深圳的银行、券商等金融机构…

(2)NUC980 Uboot制作

目录&#xff1a; (1)NUC980 编译环境搭建 (2)NUC980 Uboot制作 (3)NUC 980 kenerl编译 u-boot&#xff1a; &#xff08;1&#xff09;下载u-boot: A:下载连接&#xff1a; 下载地址&#xff1a;https://gitee.com/OpenNuvoton/NUC970_U-Boot_v2016.11 文件&#xff1a;NUC97…

分布式存储ceph

ceph架构&#xff0c;三个默认接口&#xff08;块存储RBD&#xff0c;文件存储cephFS&#xff0c;对象存储RGW&#xff09; LibRADOS对象访问接口 RADOS基础存储系统&#xff08;统一存储池&#xff09; #最底层 ceph架构 osd&#xff0c;负责存储数据&#xff0c;一般一个…

27.hadoop系列之50G数据清洗入库秒查询实践

1. 项目背景 目前本地有50G的企业年报csv数据, 需要清洗出通信地址&#xff0c;并需要与原有的亿条数据合并以供业务查询最新的企业通信地址 2. 技术选型 Hadoop ClickHouse 3. Hadoop数据清洗 我们50G的数据无须上传至集群处理&#xff0c;上传目前带宽2M/S, 巨慢&#x…

【shiro】shiro整合JWT——1.需要创建的类

前言 shiro整合JWT系列&#xff0c;主要记录核心思路–如何在shiroredis整合JWTToken。 该篇主要讲述整合JWT需要创建那些类&#xff0c;如下&#xff1a; JwtToken &#xff08;JWT实体类&#xff09;JwtUtil &#xff08;JWT工具类&#xff09;JwtFilter &#xff08;JWT拦…

IIS日志分析

一、下载IIS日志分析软件 地址如下&#xff1a; 开放网盘: 寄存一些分享出来的文件之类的东西 其中就是LogParser和LPS两个压缩文件 二、安装软件 1、需要先安装Log Parser 运行安装上面的文件。 2. 运行Log Parser Studio 在解压的LPSV2.D1文件夹中运行LPS.exe 出现下面…

BR 4P3040.00-490 标准PLC采用梯形逻辑编程

B&R 4P3040.00-490 奥地利贝加莱 电源面板 可编程逻辑控制器(Programmable Logic Controller)技术通常与梯形逻辑编程隔离通信——这是B&R迈出的一大步。B&R平台是基于PC的&#xff0c;这意味着您可以使用PLC系统中不常见的编程语言和功能。例如&#xff0c;可以用…

《架构设计》-09-分布式服务架构(注册中心、服务发布、服务调用、服务治理)

文章目录 1. 概述2. 集群容错策略3. 服务路由3.1 直接路由3.2 间接路由和注册中心3.3 路由规则3.4 服务路由/负载均衡/集群容错的关系 4. 服务发布4.1 发布启动器4.2 动态代理4.3 发布管理器4.4 协议服务器 5. 服务调用6. 服务治理 1. 概述 RPC架构的意义 解决了分布式环境下两…

chatgpt赋能python:Python写UDF对于SEO的影响

Python写UDF对于SEO的影响 作为一名有10年python编程经验的工程师&#xff0c;我对Python写UDF的优势深有体会。UDF&#xff08;User-Defined Functions&#xff09;是用户自定义函数的缩写&#xff0c;在数据处理和数据分析的过程中经常用到。下面我将介绍Python写UDF对于SEO…

渲染学生信息表

代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, initi…

MFC(六)框架理论

关键类 ,MFC中关键类有&#xff1a; CMFCAPP:最底层的类&#xff0c;也是最重要的类&#xff0c;统筹全局&#xff0c;管理DOCUMENT TEMPLATE CFRAMEWND:框架窗口&#xff0c;包括菜单栏、工具栏、状态栏等等&#xff0c;主要是负责窗口的布局 CVIEW:负责展示具体的数据 C…

chatgpt赋能python:Python内置变量介绍

Python内置变量介绍 Python是一种高级编程语言&#xff0c;具有简单易学、可读性强、可扩展性强等特点。在Python中&#xff0c;有许多内置变量&#xff08;built-in variables&#xff09;&#xff0c;以方便用户在编写程序时进行使用。本文将会对Python中的内置变量进行介绍…

基于SpringBoot+Vue的逍遥大药房管理系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

干货,一文弄懂RF检波器那些事

WiFi、4G、蓝牙等各种无线连接技术的普及带动各种终端设备井喷式增长&#xff0c;包括物联网、可穿戴等各种基于无线连接技术的新兴产业迅速成长起来&#xff0c;各种无线信号链解决方案涌现推动这种热潮的持续发展。在无线信号链中&#xff0c;很久没有听到有人提起一个关键的…

快速开发和使用Android串口

一、什么是串口 串口叫做串行接口&#xff0c;也称串行通信接口&#xff0c;也可以叫做COM口&#xff0c;按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。串行接口是指数据一位一位地顺序传送&#xff0c;其特点是通信线路简单&#xff0c;只要一对传输线就可以实现…