区间预测

2023-11-07

区间预测 | MATLAB实现基于QRCNN-BiGRU卷积双向门控循环单元多变量时间序列区间预测

效果一览

1

2

3

4

5

6

7

基本介绍

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

模型描述

QRCNN-BiGRU是一种深度学习模型,用于多变量时间序列的区间预测。该模型结合了卷积神经网络(CNN)、双向门控循环单元(BiGRU)和量化回归(QR)技术,以提高预测准确性。
在该模型中,卷积神经网络用于提取时间序列的局部特征,双向门控循环单元则用于捕捉时间序列的长期依赖关系。量化回归技术则用于根据预测误差的分布情况调整模型的预测结果,从而提高预测的稳定性和准确性。
该模型的预测过程分为两个步骤:首先,使用QRCNN提取特征,并将特征输入到BiGRU中进行时间序列分析;接下来,使用量化回归技术获得预测的区间范围。这种方法可以有效地减少预测的误差,并提高预测的精度。
总之,QRCNN-BiGRU模型是一种用于多变量时间序列区间预测的高级深度学习模型,具有优秀的准确性和稳定性。

程序设计

  • 完整程序和数据获取方式:私信博主。
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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

区间预测 的相关文章

  • 类与对象(3)

    目录 1 操作符重载 1 1 赋值运算符重载 1 2 操作符重载 1 3 操作符重载 1 4 lt 操作符重载 1 5 lt 操作符重载 1 6 gt 操作符 1 7 gt 操作符 1 8 前置 和后置 1 9 前置 和后置 2 编写一个D
  • SpringBoot - 配置文件加载位置与优先级

    1 项目内部配置文件 spring boot 启动会扫描以下位置的application properties或者application yml文件作为Spring boot的默认配置文件 file config file classpat
  • 解决element-ui消息提示$message重叠问题

    在进行表单校验的时候 当触发两个提示消息的时候会出现上面的叠加情况 没有将提示消息分开显示 这样就给用户造成不好的视觉效果 我们的预期效果是达到上面的显示效果 就是在进行提示的时候 如果叠加就需分开显示 解决方案 第一种解决方案 第二种解决
  • Hibernate 一级缓存源码级

    你是否遇到过这类情况 case 1 查询返回10条数据 其他程序修改数据 再次查询返回的数据并没有被修改 case 2 查询返回5条数据 修改已有5条数据的部分字段 并新增5条数据 再次查询 读取到10条数据 已被查询过的5条数据没有被更新

随机推荐

  • Python3中内置函数callable介绍

    Python3中的内置函数callable接受一个对象参数 如果此对象参数看起来可调用 则callable函数返回True 否则返回False 如果返回True 则调用仍有可能失败 但如果返回False 则调用对象将永远不会成功 类是可调用
  • Windows下如何确定用户创建时间

    1找到用户对应profile目录 在win7下一般在users目录下 看目录的创建时间就能知道用户的第一次登入时间 但是因为是第一次登入时间 如果账户创建后没有登入过 就不会有这个目录 而且如果登入时间一般也会晚于创建时间 比如当前使用帐号
  • RSA非对称加密使用方式与原理浅析

    一 非对称加密的简述 非对称加密 顾名思义加解密用的不是同一个密钥 如此我们也能很通俗的对照理解对称加密 显然它后者是加解密为同一个密钥 那么非对称加密就得用俩个密钥 一个叫公钥 任何人都能够去获取 一个叫私钥 不会四处乱传输 保留在一个认
  • tslib编译出错解决(gcc版本问题)

    交叉编译器 arm none linux gnu eabi 4 2 0 configure prefix opt tslib host arm linux ac cv func malloc 0 nonnull yes 之前报错 usr i
  • 【CCF- CSP 2022 6-01 归一化处理 满分题解】

    代码实现 include
  • 在Vue中调用微信的扫描二维码功能

    在Vue中调用微信的扫描二维码功能 步骤 新建vue文件 这里采用mint的标签库 就一个按钮 关键代码
  • 在pycharm中新建一个虚拟conda环境的步骤

    不用命令行 自己在创建新项目时手动创建新的conda虚拟环境 1 先在conda executable下选择conda exe 此执行文件在scripts下 系统一般自动默认此项 location 项目文件自动到anaconda的envs下
  • STM32第一天之GPIO寄存器与位带操作相关注意事项

    1 STM32存储器映射地址 2 常用到的基地址如下 3 系统框架结构 4 对于地址定义的时候需要加小括号保持整体性 片上外设基地址 2 define PERIPH BASE unsigned int 0x40000000 3 4 总线基地
  • ES7.17版本terms查询性能问题

    背景 1 对于7版本 大版本 集群希望只维护一个版本 最终选择7 17 对同大版本的7 5版本集群进行升级 2 根据官方描述 id放到堆外性能损失非常小可以忽略 且对BKD进行了优化 3 升级完成 一段时间之后 收到用户报障 4 抽样检查了
  • Android屏幕适配(使用ConstraintLayout),kotlin数组排序

    教程如下 1 拉两根横向参考线分别定在20 65 博主计算所得 2 然后拉一个imageView进入布局 选择自己要显示的图片 3 将此imageView的上下参照物设置为两参照线 并将左右参照物设置为父容器 将其宽设置为wrap cont
  • pyspark结合hive使用 spark on hive方式开发代码附上代码实例

    1 在CDH中已经添加了hive 2 配置hive中的hive site xml参数 opt cloudera parcels CDH lib hive conf hive site xml 3 配置spark中的hive site xml
  • flask中ORM的使用

    目录 1 ORM是什么 2 flask sqlalchemy介绍及安装 3 设计数据库模型并创建表 4 使用ORM插入 修改 删除数据 5 使用ORM查询数据并展示 1 ORM是什么 对象关系的映射 它的作用是在关系型数据库和对象之间作一个
  • 前端三件套原理遗忘复习(一)

    1 BOM事件 事件就是用户或浏览器自身执行的某种动作 事件可能是用户在某些内容上的点击 鼠标经 过某个特定元素或按下键盘上的某些按键 事件还可能是 Web 浏览器中发生的事情 比如说 某个 Web 页面加载完成 或者是用户滚动窗口或改变窗
  • 在切瓦片时transform的包围盒会偏移一个位置,查看这个是否需要在坐标上减去该值,或者直接用tmspackage

    这个用apply transfrom 即可 因为transform后面addChild的是整个几何体 关键是如何判断整体的包围盒 所有的几何体包围盒 这样四叉树或者八叉树才行 如果说对单个模型的八叉树切片是对drawable的切片 那么多个
  • Android解决调用JNI报java.lang.UnsatisfiedLinkError: No implementation found for的错误

    最近公司项目需求接入即时通讯功能 现在第三方的即时通讯做的比较完善 接入也很方便 最近在调试语音的时候遇到了一个 so库加载失败的问题 在网上查看都是说由于原有项目的so库和新添加的model的so库数量不一致 具体报错如下 java la
  • 认真分析mmap:是什么 为什么 怎么用

    mmap基础概念 mmap是一种内存映射文件的方法 即将一个文件或者其它对象映射到进程的地址空间 实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系 实现这样的映射关系后 进程就可以采用指针的方式读写操作这一段内存 而系统会自动
  • oracle delete了数据表,吓死我了!!

    我用的是第一种方法 华丽分割线 一 根据时间来恢复 1 查询数据库当前时间 目的是为了检查数据库时间是否与你电脑时间相近 避免时间不同而将数据恢复到错误时间点 select to char sysdate yyyy mm dd hh24 m
  • Datawhale-数据类型、关键字、标识符

    Go 语言的空格 Go 语言中变量的声明必须使用空格隔开 如 var age int 语句中适当使用空格能让程序更易阅读 无空格 fruit apples oranges 在变量与运算符间加入空格 程序看起来更加美观 如 fruit app
  • Spring Bean xml定义说明

    转自 Spring Bean xml定义说明 在前一篇文章中 我们知道了Spring IoC容器管理的对象称之为 Spring Bean Spring Bean根据配置文件或注解创建 那么这个配置文件该如何编写呢首先Spring Bean的
  • 区间预测

    区间预测 MATLAB实现基于QRCNN BiGRU卷积双向门控循环单元多变量时间序列区间预测 目录 区间预测 MATLAB实现基于QRCNN BiGRU卷积双向门控循环单元多变量时间序列区间预测 效果一览 基本介绍 模型描述 程序设计 参