上新!Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型

目录

      • 效果一览
      • 基本介绍
      • 程序设计
      • 参考资料

效果一览

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本介绍

1.Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型;

2.多图输出、多指标输出(MAE、RMSE、MSE、R2),多输入单输出,含不同置信区间图、概率密度图;

3.data为数据集,功率数据集,用过去一段时间的变量,预测目标,目标为最后一列,也可适用于负荷预测、风速预测;main为主程序,其余为函数文件,无需运行;

数据集为2018年6月2日-2018年8月9日的6624个样本,采样间隔为15 分钟。选取2018年6月2日-2018年8月4日为训练集,剩下作为测试集。采用过去5个小时的特征作为输入,目标和特征都进行了归一化和差分进行训练。训练迭代器采用adam,学习率为0.001,批次大小为64,迭代轮数30轮。网络为两层GRU单元+一个注意力机制,神经元个数为64。损失函数采用分位数回归:
在这里插入图片描述
以测试样本集中2018:08:05:0:0时刻至2018:08:09:23:45时刻为例,分位数预测得到不同置信区间下的风电功率结果如图所示。可以看出,不同置信度条件下的预测区间与风电功率实际值的波动大致相同,表明本文的方法能够准确预测风电功率变化,此外在实际值变化剧烈的地方置信区间越宽,表明预测可信度变低,这也与实际情况相符合。对比预测未来不同时间步的预测区间,预测的误差在增大。以测试样本集中2018年8月5日-6日的6:00、12:00 和18:00为例,根据分位数预测未来90min后的结果,采用核密度估计,生成风电功率的概率密度曲线。如图所示。可以看到,风电功率实际值均落在高概率密度波峰处附近。
4.代码质量高,注释清楚,含数据预处理部分,处理缺失值,如果为nan,用上一行替代,也含核密度估计;

程序设计

  • 完整程序和数据获取方式私信博主回复Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型。

%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
data=[data_new data_new];
%日期转换,方便观察
data_time =datevec(cell2mat(data_text(2:end,1)));
data_time=data_time(:,1:3);
data_time_temp=[];
[m, n]=size(data_time);
for i=1:mdata_time_temp=[data_time_temp;repmat(data_time(i,:),96,1)];
end
data_time_hour=repmat([0:23]',m*4,1);
data_time_minute=repmat([0:15:59]',m*24,1);
data_time=[data_time_temp data_time_hour data_time_minute];
%% 你需要按照你的数据集和要求修改的内容
%注意数据,前面几列是特征变量,预测目标为最后一列。行数为样本数,一般按时间排序来
split_point=6144; %%选取前多少个作为训练样本,剩下的作为测试,这里是2018年8月5号0点0分
split_point_test_flag=1;%%因为是时序问题,测试集个数固定,因为前几个的历史特征没有,所以历史特征是否要向训练集借来历史样本=0表示不借,=1表示借
feature_num=1; %% 每个时刻的特征数,这个每个数据集不一样,要自己去数,这个要到网络搭建输入时候会用到,如果目标也参与作为输入变量,要加1,这里是单变量,所以为1就好
target_num=1;  %% 要预测的目标个数,如果是单目标为1就行,多目标就自己去数,这个要到网络网络搭建输出时候会用到
history_steps=20; %用过去的共history_steps个时间步时刻,如果用过去10个,改成history_steps=10就好
future_step=6; %预测未来的第future_step个时刻,因为是15min一个,=2表示预测未来第30分钟,=4表示预测未来第60分钟
chafen_flag=1; %是否启用差分,为1表示启用:这里特征是与前一个时刻的差分了,目标也是差分了=(t+future_step)-t,一般差分会好,不差分结果会差一点
rng(2021) %定随机种子,保证每次结果一样,保证结果可以复现
neuron_num=64; %神经元个数
lr=0.001;%学习率,如果想改成可变学习率,在网络设置里再调
batchsize=64;%批次大小
maxpochs=30;%最大迭代轮数

参考资料

[1] http://t.csdn.cn/pCWSp
[2] https://download.csdn.net/download/kjm13182345320/87568090?spm=1001.2014.3001.5501
[3] https://blog.csdn.net/kjm13182345320/article/details/129433463?spm=1001.2014.3001.5501

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[000-01-015].第03节:SpringBoot中数据源的自动配置

我的后端学习大纲 SpringBoot学习大纲 1.数据访问流程: 2.搭建数据库开发场景: 2.1.导入JDBC场景: 2.2.分析自动导入的内容: 2.3.分析为何没有导入数据库驱动: 1.因为人家也不知道我要用啥数据库,所以在自…

衡石科技BI的API如何授权文档解析

授权说明​ 授权模式​ 使用凭证式(client credentials)授权模式。 授权模式流程说明​ 第一步,A 应用在命令行向 B 发出请求。 第二步,B 网站验证通过以后,直接返回令牌。 授权模式结构说明​ 接口说明​ 获取a…

如何禁止电脑访问网站

一、修改Hosts文件 找到Hosts文件:在Windows系统中,Hosts文件通常位于C:\Windows\System32\drivers\etc\目录下。 编辑Hosts文件:以管理员身份打开记事本或任意文本编辑器,然后找到并打开Hosts文件。 添加禁止访问的域名&#…

SSRF漏洞(二)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 本文主要讲解依靠phpstudy搭建pikachu靶场。 phpstudy下载使用以及搭建本地SQL labs靶场 SSRF漏洞(一) 靶场搭建。 靶场链接&#xff1…

Linux:NAT等相关问题

目录 1:NAT背景 2:NAT IP转换过程 3:NATP 4:正向代理 5:反向代理 6:NAT和代理服务器 应用场景 实现方法 1:NAT背景 IPv4地址耗尽:随着互联网的迅速发展,连接到…

LMDeploy 量化部署实践

一、环境配置见:https://github.com/InternLM/Tutorial/blob/camp3/docs/L2/LMDeploy/readme.md 验证LMDeploy启动InternLM2_5-7b-chat conda activate lmdeploy lmdeploy chat /root/models/internlm2_5-7b-chat二、量化显存计算 参数计算: LMDeploy …

盘点15款工程软件,为制造业选型提供参考!

本文将盘点15款工程软件,供企业选型参考。 工程软件就如同工程领域的得力助手,能让工程建设的各个环节都变得更加高效、精准。 对于工程企业来说,如果没有合适的工程软件,就像工匠没有趁手的工具,难以打造出精良的作品…

linux查看系统安装时间命令,找出Linux操作系统(OS)安装日期和时间

你可能想知道你的计算机上何时安装了Linux操作系统,即OS的安装日期和时间,使用tune2fs、dumpe2fs、ls、basesystem、setup、setuptool命令能出来结果。请注意,如果你从模板安装了操作系统,那么它将显示模板生成日期,而不是实际操作系统安装日期。 方法1:如何使用tune2fs…

LayerNorm介绍

简介 Layer Normalization (LayerNorm) 是一种归一化技术,常用于深度学习模型中,特别是在 Transformer 模型中。 Layer normalization 是在特征维度上进行标准化的,而不是在数据批次维度上。 目的 收敛模型数据数值差异,缓解内…

GD32F4xx---RTC初始化设置及闹钟方式实现秒中断讲解

GD32F4xx—RTC初始化设置及闹钟方式实现秒中断讲解 1、下载链接:源码工程 一、概述 GD32F4x的RTC例程网上资源较少,详细阅读用户手册后做出如下配置。RTC模块提供了一个包含日期(年/月/日)和时间(时/分/秒/亚秒)的日历功能。除亚秒用二进制码显示外,时间和日期都以BC…

『功能项目』新输入系统【06】

我们打开上一篇04禁止射线穿透行为项目, 本章要做的事情是在Unity编辑器中添加 新输入系统 实现主角在场景中鼠标右键可以使主角 转向。 本次项目需要让Unity引擎重新启动所以先保存当前项目 再次打开项目后, 修改为Both 点击Apply前注意要先保存项目&a…

JVM上篇:内存与垃圾回收篇-07-方法区

笔记来源:尚硅谷 JVM 全套教程,百万播放,全网巅峰(宋红康详解 java 虚拟机) 文章目录 7. 方法区7.1. 栈、堆、方法区的交互关系7.2. 方法区的理解7.2.1. 方法区在哪里?7.2.2. 方法区的基本理解7.2.3. HotSp…

【Linux】命令简介------迅速掌握Linux命令

目录 Linux 命令 🍔 ls命令 🍔 cd 和 pwd命令 🍔 相对路径和绝对路径 🍔 文件/文件夹的创建以及文件内容的浏览 🍔 文件的复制,移动和删除 🍔 文件的查找 🍔 grep 和管道 &#x1f354…

@antv/g6 业务场景:流程图

1、流程图是流经一个系统的信息流、观点流或部件流的图形代表。在企业中,流程图主要用来说明某一过程。这种过程既可以是生产线上的工艺流程,也可以是完成一项任务必需的管理过程。业务场景流程图如下: 2、绘制流程图的 Tips 流程图一般是用…

奇安信渗透测试岗位三面经验分享

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

Python深浅拷贝

0、前置知识 数据类型:可变类型、不可变类型 不可变类型:一旦创建就不可修改的对象,包括字符串、元组、数值类型(整型、浮点型) 该对象所指向的内存中的值不能被改变。 当改变某个变量时候,由于其所指的…

【MySQL 12】事务管理 (带思维导图)

文章目录 🌈 一、事务的基本概念⭐ 1. 事务是什么⭐ 2. 事务的特性 🌈 二、事务的版本支持🌈 三、事务的提交方式⭐ 1. 查看事务的提交方式⭐ 2. 设置事务的提交方式 🌈 四、事务的特性证明⭐ 1. 事务的常规操作⭐ 2. 证明事务的原…

进程间的通信

建立两个.c 建立子父进程&#xff0c;父进程发送消息到队列&#xff0c;子进程读取队列&#xff0c;另一个同样。 #include <myhead.h> struct msga {long mtype;char mtext[1024]; }; #define len sizeof(struct msga)-sizeof(long) int main(int argc, const char *arg…

烂大街的测试左移和右移

01 测试左移与右移的定义 通俗的讲&#xff1a;左移是往开发阶段移&#xff0c;右移是往发布之后移。 正常测试&#xff1a;提测后的测试工作——到——发布验证完成阶段。 测试左移&#xff1a;提测之前的测试。 如&#xff1a;代码单元测试&#xff0c;代码质量检测&#x…

python-读取word中的内容

doc Document(rD:\xxxx\xxxx\xxx.docx) #读取word中所有内容 for p in doc.paragraphs print(p,p.text) #读取指定段落中的所有run(文字块) for run in doc.paragraphs[1].runs: print(run,run.text) #读取word中所有表格内容 for 表格 in doc.tables: print(表格) for 行 in …