区间预测 | MATLAB实现基于QRCNN-LSTM-Multihead-Attention多头注意力卷积长短期记忆神经网络多变量时间序列区间预测
区间预测 | MATLAB实现基于QRCNN-LSTM-Multihead-Attention多头注意力卷积长短期记忆神经网络多变量时间序列区间预测
目录
- 区间预测 | MATLAB实现基于QRCNN-LSTM-Multihead-Attention多头注意力卷积长短期记忆神经网络多变量时间序列区间预测
- 效果一览
- 基本介绍
- 模型描述
- 程序设计
- 参考资料
效果一览
基本介绍
1.Matlab实现基于QRCNN-LSTM-Multihead-Attention卷积神经网络结合长短期记忆神经网络多头注意力多变量时间序列区间预测;
2.多图输出、点预测多指标输出(MAE、MAPE、RMSE、MSE、R2),区间预测多指比输出(区间覆盖率PICP、区间平均宽度百分比PINAW),多输入单输出,含点预测图、不同置信区间预测图、误差分析图、核密度估计概率密度图;
3.data为数据集,功率数据集,用多个关联变量,预测最后一列功率数据,也可适用于负荷预测、风速预测;MainQRCNN_LSTM_MATTNTS为主程序,其余为函数文件,无需运行;
4.代码质量高,注释清楚,含数据预处理部分,处理缺失值,如果为nan,则删除,也含核密度估计;
5.运行环境Matlab2021及以上。
模型描述
多头注意力卷积长短期记忆神经网络(Multi-Head Attention Convolutional LSTM,MHAC-LSTM)是一种用于处理多变量时间序列预测问题的深度学习模型。它将卷积神经网络(CNN)和长短期记忆神经网络(LSTM)结合起来,并使用多头注意力机制来增强模型的表达能力。
每个输入时间序列的变量都经过一个卷积层进行特征提取,并将卷积层的输出传递给一个LSTM层进行时间序列建模。然后,多头注意力机制被应用于LSTM层的输出,以捕捉不同变量之间的关系和重要性,从而提高模型的预测性能。总的来说是一种强大的深度学习模型,适用于多变量时间序列预测问题,尤其是区间预测问题。它可以通过结合卷积、LSTM和注意力机制来捕捉输入数据的空间和时间特征,并在预测时考虑不同变量之间的关系,从而提高预测精度。
多头注意力(Multi-Head Attention)是一种用于增强神经网络表达能力的机制,常用于处理序列数据的建模任务,如机器翻译、语言生成和语音识别等。
在传统的注意力机制中,模型通过计算输入序列中每个位置与目标位置的相关性,来计算每个输入位置对目标位置的影响权重。而多头注意力则通过将多个独立的注意力机制结合起来,来捕捉到不同的相关性表示。
具体来说,多头注意力将输入序列划分为多个头(head),并为每个头分配一组参数,然后在每个头中应用单独的注意力机制。这样,模型可以同时学习多个相关性表示,提高了模型对输入的表达能力。
在计算多头注意力时,模型首先将输入通过多个独立的线性变换映射到不同的空间中,然后对每个头中的映射结果进行注意力计算。最后,将每个头的注意力计算结果通过另一个线性变换进行合并,并通过激活函数进行输出。
多头注意力的优点在于它可以同时捕捉到多种相关性表示,从而提高模型的表达能力和泛化能力。此外,多头注意力还可以通过堆叠多层来进一步提高模型的表达能力,形成所谓的多层多头注意力(Multi-Layer Multi-Head Attention)。
多头注意力已经被广泛应用于自然语言处理、图像处理和语音处理等领域,成为深度学习中的一种重要建模工具。
程序设计
- 完整程序和数据获取方式:私信博主。
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%% 创建混合CNN-LSTM网络架构
%% 区间覆盖率
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));
endpicp = 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
相关文章:

区间预测 | MATLAB实现基于QRCNN-LSTM-Multihead-Attention多头注意力卷积长短期记忆神经网络多变量时间序列区间预测
区间预测 | MATLAB实现基于QRCNN-LSTM-Multihead-Attention多头注意力卷积长短期记忆神经网络多变量时间序列区间预测 目录 区间预测 | MATLAB实现基于QRCNN-LSTM-Multihead-Attention多头注意力卷积长短期记忆神经网络多变量时间序列区间预测效果一览基本介绍模型描述程序设计…...

递归--打印一个字符串的全部排列(java)
打印一个字符串的全部排列 打印一个字符串的全部排列解题思路打印一个字符串的全部排列,要求不要出现重复的排列递归专题 打印一个字符串的全部排列 自负串全排序: 举例: abc 的全排序是: abc acb bac bca cba cab 解题思路 因为每个字符都要选,其实就是选择每个字符…...

【001 设备驱动】主设备号和次设备号的用途
一、请简述主设备号和次设备号的用途 Linux 中每个设备都有一个设备号,设备号由主设备号和次设备号两部分组成,主设备号表示某一个具体的驱动,次设备号表示使用这个驱动的各个设备。 Linux 提供了一个名为 dev_t 的数据类型表示设备号&…...

移动端PDF在线预览
苹果手机可以直接在线预览PDF文件,而安卓手机不行,必须得下载(如图),所以需要解决一下 1.准备所需js文件 (1)js下载地址https://mozilla.github.io/pdf.js/ (2)下载步骤 ①:打开网址后&#x…...

虚拟机两次寻址
一次寻址: 虚拟、逻辑地址:CS(段选择子) eip(段内偏移)> 线性地址 : 32位或64位 通过页表> 物理地址 x86: 页面大小4k pte4个字节 10-10-12 (不管是x86 x86PAE x64下页内偏…...

DRF之JWT认证
一、JWT认证 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token(本质就是token)认证机制。 Json web token (JWT), 是为了在网络应用环…...

华为OD机试真题 Java 实现【放苹果】【2022Q4 100分】
一、题目描述 把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法? 注意:如果有7个苹果和3个盘子,(5,1,1)和(1,5,1)被视为是同一种分法。 数据范围:0≤m≤10 ,1≤n≤10 。 二、输入描述 输入两个int整数。 三、输出描述 输…...

拼多多继续ALL IN
2023年注定是中国电商不平凡的一年。 随着网购用户数量见顶,经济形势进入新常态,电商平台已经来到了短兵相接的肉搏战阶段。 此刻的618大促,硝烟弥漫,刀光剑影,电商“决战”似乎是迫在眉睫。对各个平台来说,…...

Unity的IPostprocessBuildWithReport:深入解析与实用案例
Unity IPostprocessBuildWithReport Unity IPostprocessBuildWithReport是Unity引擎中的一个非常有用的功能,它可以让开发者在构建项目后自动执行一些操作,并且可以获取构建报告。这个功能可以帮助开发提高工作效率,减少手动操作的时间和错误…...

九、Spring Cloud—gateway网关
一、引言 每个微服务都需和前端进行通信,解决每个微服务请求时的鉴权、限流、权限校验、跨域等逻辑,放在一个统一的地方进行使用。 在微服务架构中,网关是一个重要的组件,它作为系统的入口,负责接收所有的客户端请求…...

ARM微架构与程序编写
目录 1.流水线 2.指令流水线 3. 多核处理器编辑 4. 工程搭建 4.1为Keil软件配置编译工具链 5.程序编写 5.1 数据处理指令 5.2 带标志位的加法ADC ADDS 5.3 跳转指令B\BL 5.4 单寄存器内存访问 5.5 批量寄存器内存访问 5.6 栈的应用->叶子函数的调用过程 5.…...

Windows下利用Anaconda创建多个CUDA环境
参考 https://blog.csdn.net/qq_42395917/article/details/126237388 https://blog.csdn.net/qq_42406643/article/details/109545766 (待学习补充) https://blog.csdn.net/qq_43919533/article/details/125694437 (待学习补充) 安装cudatoolkit和cudnn # 前提是我已经安装了…...

C SS复习笔记
1.img标签 img的src属性是图片显示不出来时显示的文字 ing的title属性是光标放到图片上,提示的文字 2.a标签 a标签的target属性表示打开窗口的方式,默认的值是_self表示当前窗口的打开页面,_blank表示新窗口打开页面。 a标签的href链接分…...

LeetCode 225 用队列实现栈
题目: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回…...

Java对象的共享
要编写正确的并发程序,关键问题在于:在访问共享的可变状态时需要进行正确的管理。第2章介绍了如何通过同步来避免多个线程在同一时刻访问相同的数据,而本章将介绍如何共享和发布对象,从而使它们能够安全地由多个线程同时访问。这两…...

漏洞概述-0day漏洞利用原理(0)
0day专题对作者来说是一个很大的挑战,但无论有多难,作者会坚持进行大量的对新旧技术(精通二进制、汇编语言、操作系统底层的知识)实践并尽可能做到完善,最终利用技术发扬正能量。 bug 与漏洞 随着现代软件工业的发展,软件规模不断扩大,软件内部的逻辑也变得异常复杂。为…...

交换机的4种网络结构方式:级联方式、堆叠方式、端口聚合方式、分层方式
交换机是计算机网络中重要的网络设备之一,用于实现局域网(LAN)内部的数据转发和通信。交换机可以采用不同的网络结构方式来满足不同的网络需求和拓扑结构。本文将详细介绍交换机的四种网络结构方式:级联方式、堆叠方式、端口聚合方…...

firewall-cmd防火墙策略
--permanent 永久生效,重启后规则不消失 不执行 firewall-cmd --reload 命令配置不生效 添加单个IP为白名单 firewall-cmd --permanent --zonepublic -add-rich-rulerule family"ipv4" source address"IP" accept 删除白名单 firewall-cmd --…...

解决SQLException: Incorrect string value异常
java开发中会遇到如下异常: org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.sql.SQLException: Incorrect string value: \xF0\x9F\x95\xB32:... for column baseInfo at row 1 ### The error may involve com.f…...

桂院校园导航 导入 与 配置教程
将 静态项目/云开发项目 文件夹下最新版本的 文件夹下的 项目 的整个文件夹 复制到项目路径下(比如 D:\WeChatProjects),强烈建议不要直接扔在桌面上 云开发项目 需开通 云开发 功能(首月免费,次月19.9)&am…...

Linux上安装jdk Tomcat mysql redis
1.安装JDk 1.1这里使用xshell中xfxp进行文件的上传,将jdk二进制包上传到Linux服务器上 下载地址:Java Downloads | Oracle 或者这里有下载好的安装包:链接:https://pan.baidu.com/s/1ZSJxBDzDaTwCH2IG-d2Gig 提取码:…...

Postman中加url环境变量和token全局变量
环境变量引用 语法:{{变量名}} 环境变量分类 1. 全局变量:全局有效,在Postman中的任何集合中都可以使用该变量,作用域最大。 2. 环境变量:要申明环境变量,先要创建环境,然后在该环境中创建变…...

多线程事务回滚方法
多线程事务回滚方法 介绍案例演示线程池配置异常类实体类控制层业务层mapper工具类验证 解决方案使用sqlSession控制手动提交事务SqlSessionTemplate注入容器中改造业务层验证成功操作示例业务层改造 介绍 1.最近有一个大数据量插入的操作入库的业务场景,需要先做一…...

java单元测试( Hamcrest 断言)
java单元测试( Hamcrest 断言) 单元测试特征: 1 范围狭窄 2 限于单一类或方法 3 体积小 为什么要编写单元测试? 为了防止错误(很明显!) 而且还可以提高开发人员的生产力,因为单元测试: (1) 帮助实施——在…...

讨论和总结 树模型 的三种序列化 方式的区别(模型存储大小、序列化所用内存、序列化速度)...
一、前言 本文总结常用树模型: rf,xgboost,catboost和lightgbm等模型的保存和加载(序列化和反序列化)的多种方式,并对多种方式从运行内存的使用和存储大小做对比 二、模型 2.1 安装环境 pip install xgboos…...

Halcon中的一些3D算子
一、记录一些Halcon里的关于3D的算子 1.read_object_model_3d 从文件读取一个3d模型 如下图,读的一个ply文件出来是个3d点云模型 2.visualize_object_model_3d 交互式展示3d模型 即上个算子读出来后,通过这个算子可以把3d模型显示出来旋转、平移&am…...

Android:Selector + Layer-lists 实现 AppCompatCheckBox
最近做项目涉及到一些UI相关的东东,虽然比较简单,但是也很有趣,写两篇简短的博客记录一下。 一."Selector 两张图片"实现 AppCompatCheckBox AppCompatCheckBox 是 androidx的一个widget:androidx.appcompat.widget.…...

TreeMap类型添加数据
package com.test.Test11;import java.util.*;public class Test02 {public static void main(String[] args) {/** 增加:put(K key,V value)* 删除:clear() remove(Object key)* 修改:* 查看:entrySet() get(Object key) keySet(…...

iOS 16 UI 设计系统免费在线使用方法
1、iOS 16 UI 设计系统中有什么? iOS 16 UI 设计系统通常包含以下组件和元素: 1. 按钮:包括操作按钮、图标按钮、导航按钮、滚动按钮、切换按钮、单选按钮、复选框按钮、呼叫按钮等各种类型的按钮。 2. 窗口和 UI 控件:包括标签…...

【接口测试】JMeter接口关联测试
1 前言 我们来学习接口管理测试,这就要使用到JMeter提供的JSON提取器和正则表达式提取器了,下面我们来看看是如何使用的吧。 2 JSON提取器 1、添加JSON提取器 在线程组右键 > 添加 > 后置处理器 > JSON提取器 2、JSON提取器参数说明 N…...