区间预测 | MATLAB实现QRCNN-BiLSTM卷积双向长短期记忆神经网络分位数回归时间序列区间预测

news2024/11/25 0:43:45

区间预测 | MATLAB实现QRCNN-BiLSTM卷积双向长短期记忆神经网络分位数回归时间序列区间预测

目录

    • 区间预测 | MATLAB实现QRCNN-BiLSTM卷积双向长短期记忆神经网络分位数回归时间序列区间预测
      • 效果一览
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

效果一览

1
2

3

基本介绍

1.Matlab实现基于QRCNN-BiLSTM分位数回归卷积长短期记忆神经网络的时间序列区间预测模型;
2.多图输出、多指标输出(MAE、RMSE、MSE、R2),多输入单输出,含不同置信区间图、概率密度图;
3.data为数据集,功率数据集,用过去一段时间的变量,预测目标,目标为最后一列,也可适用于负荷预测、风速预测;MainQRCNN_BiLSTMTS为主程序,其余为函数文件,无需运行;
4.代码质量高,注释清楚,含数据预处理部分,处理缺失值,如果为nan,用上一行替代,也含核密度估计;

模型描述

QRCNN-BiLSTM卷积双向长短期记忆神经网络分位数回归时间序列区间预测是一种基于深度学习的时间序列预测模型。它结合了卷积神经网络(CNN)、双向长短期记忆网络(BiLSTM)和分位数回归技术,可以用于预测时间序列的区间范围。
具体来说,QRCNN-BiLSTM模型首先使用CNN层提取时间序列的特征,然后使用BiLSTM层对这些特征进行建模,以捕捉时间序列中的长期依赖关系。接下来,使用分位数回归技术来预测时间序列的不同分位数,从而得到一个区间范围。最后,使用该模型对时间序列进行预测。
这种模型可以应用于多个领域,例如金融、气象、交通等。它可以帮助预测未来的趋势和风险,提供决策支持和参考。

  • QRCNN-BiLSTM模型的具体公式如下:

  • 首先,使用CNN层对时间序列进行特征提取:

x i , j ( c ) = σ ( ∑ k = 1 K w k ( c ) ⋅ x i + k − 1 , j + b ( c ) ) x_{i,j}^{(c)} = \sigma (\sum_{k=1}^{K}w_k^{(c)} \cdot x_{i+k-1,j} + b^{(c)}) xi,j(c)=σ(k=1Kwk(c)xi+k1,j+b(c))

  • 其中, x i , j ( c ) x_{i,j}^{(c)} xi,j(c)表示第 j j j个特征在第 i i i个时间步的卷积结果, K K K表示卷积核大小, w k ( c ) w_k^{(c)} wk(c)表示第 c c c个卷积核的第 k k k个权重, b ( c ) b^{(c)} b(c)表示第 c c c个卷积核的偏置, σ \sigma σ表示激活函数。

  • 然后,使用BiLSTM层对CNN层的输出进行建模:

h t → = LSTM ( x t , h t − 1 → ) h t ← = LSTM ( x t , h t + 1 ← ) h t = [ h t → ; h t ← ] \begin{aligned} & \overrightarrow{h_t} = \text{LSTM}(x_t, \overrightarrow{h_{t-1}})\\ & \overleftarrow{h_t} = \text{LSTM}(x_t, \overleftarrow{h_{t+1}})\\ & h_t = [\overrightarrow{h_t}; \overleftarrow{h_t}] \end{aligned} ht =LSTM(xt,ht1 )ht =LSTM(xt,ht+1 )ht=[ht ;ht ]

  • 其中, h t → \overrightarrow{h_t} ht h t ← \overleftarrow{h_t} ht 分别表示前向和后向LSTM的隐藏状态, h t h_t ht表示BiLSTM的隐藏状态。

  • 接下来,使用分位数回归技术来预测时间序列的不同分位数:

y t ( τ ) = h t T ⋅ W ( τ ) + b ( τ ) y_t^{(\tau)} = h_t^T \cdot W^{(\tau)} + b^{(\tau)} yt(τ)=htTW(τ)+b(τ)

  • 其中, y t ( τ ) y_t^{(\tau)} yt(τ)表示时间步 t t t的第 τ \tau τ个分位数预测结果, W ( τ ) W^{(\tau)} W(τ)表示权重向量, b ( τ ) b^{(\tau)} b(τ)表示偏置。该模型可以同时预测多个分位数,从而得到一个区间范围。

  • 最后,使用该模型对时间序列进行预测,即预测时间序列在未来某个时间段内的区间范围。

程序设计

  • 完整程序和数据获取方式:私信博主。
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
% 加载数据
load data.mat
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

以下是一个简单的QRCNN-BiLSTM分位数回归时间序列区间预测的Matlab代码示例:

```matlab
% 数据集预处理
data = load('data.mat');
X = data.X; % 输入数据,大小为[N, T, F]
Y = data.Y; % 输出数据,大小为[N, T, Q]

% 将数据集划分为训练集和测试集
train_ratio = 0.8;
train_size = round(train_ratio * size(X, 1));
train_X = X(1:train_size, :, :);
train_Y = Y(1:train_size, :);
test_X = X(train_size+1:end, :, :);
test_Y = Y(train_size+1:end, :);

% 定义QRCNN-BiLSTM模型
input_layer = imageInputLayer([size(train_X, 2), size(train_X, 3)]);
conv_layer = convolution2dLayer([3, 3], 32, 'Padding', 'same');
relu_layer = reluLayer();
maxpool_layer = maxPooling2dLayer([2, 2], 'Stride', [2, 2]);
lstm_layer = biLSTMLayer(64, 'OutputMode', 'last');
fully_layer = fullyConnectedLayer(size(train_Y, 2));
output_layer = regressionLayer();

layers = [input_layer;
          conv_layer;
          relu_layer;
          maxpool_layer;
          lstm_layer;
          fully_layer;
          output_layer];

% 训练模型
options = trainingOptions('adam', ...
                          'MaxEpochs', 50, ...
                          'MiniBatchSize', 64, ...
                          'ValidationData', {test_X, test_Y}, ...
                          'ValidationFrequency', 10, ...
                          'Plots', 'training-progress');
                      
model = trainNetwork(train_X, train_Y, layers, options);

% 对测试集进行预测
pred_Y = predict(model, test_X);

% 计算预测误差
mae = mean(abs(pred_Y - test_Y));
mse = mean((pred_Y - test_Y).^2);

参考资料

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

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

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

相关文章

Redis数据热迁移

1、redis数据热迁移,先通过redis-shake工具实现。 2、再通过redis-full-check检查迁移后的数据是否想同。 3、redis-shake版本下载: https://github.com/tair-opensource/RedisShake/releases 4、redis-full-check版本下载: https://github.c…

更简单的存和取bean

注解(更简单存bean和取bean)更简单的存bean(使用类注解)方法注解更简单的获取bean 注解(更简单存bean和取bean) 注解:声明和表示这个类或方法有某个能力。servlet的Web注解;实现路由…

2000多套微信小程序源码-史上最全的不同行业的源码集合

前言 提示:这里可以添加本文要记录的大概内容: 很多伙伴学习小程序不知怎么开始,我准备了2000多套小程序源码,基本覆盖各个行业,大家有需要的可以借鉴学习~ 提示:以下是本篇文章正文内容,下面…

“数字人交互,与虚拟的自己互动”——用PaddleAvatar打造数字分身,探索人机交互的未来

“数字人交互,与虚拟的自己互动”——用PaddleAvatar打造数字分身,探索人机交互的未来 你是否曾经幻想过与自己的虚拟人交互?现在,使用PaddleAvatar,您可以将自己的图像、音频和视频转化为一个逼真的数字人视频&#…

Spring Cloud Alibaba--Nacos集群配置

文章目录 一、Nacos持久化配置二、Nacos集群配置三、避坑指南集群端口号冲突问题内存不足,无法启动的问题 一、Nacos持久化配置 Nacos默认自带的是嵌入式数据库derby,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。 …

Goby 漏洞更新 |secnet-智能路由系统 actpt_5g.data 信息泄露

漏洞名称:secnet-智能路由系统 actpt_5g.data 信息泄露 English Name:secnet Intelligent Router actpt_5g.data Infoleakage CVSS core: 7.5 影响资产数:71768 漏洞描述: secnet安网智能AC管理系统是广州安网通信技术有限公…

mysql错误:2059 - Authentication plugin ‘caching_ sha2_password‘ cannot be loaded:

这个错误是因为MySQL数据库使用了 caching_sha2_password 插件进行身份验证,而该插件需要 MySQL 8.0.4 及以上版本的 MySQL 客户端才能够使用。 如果你使用的是旧版本的 MySQL 客户端,可以考虑升级到 MySQL 8.0.4 或更高版本。如果升级不是一个可行的选…

Windows重启mysql的方法(快速简单)

目录 一、背景 二、操作步骤 错误做法 正确做法 一、背景 有时候修改了数据库,但是MySQL数据库内容有延迟缓存,那么就需要重启一下数据库去解决问题 二、操作步骤 错误做法 直接去cmd命令里面输入net stop mysql这样停止,这样很可能…

【C++初阶】C++模版(进阶)

文章目录 前言一、非类型模板参数二、模板的特化概念函数模板特化类模板特化1.全特化3.偏特化 三、模板分离编译什么是分离编译模板的分离编译解决方法 模板总结 前言 前边我们讲解了模版初阶的内容,对泛型编程,函数模版,类模板有了一定的认…

上海亚商投顾:沪指失守3300点关口 AI应用方向大幅调整

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日集体调整,尾盘均跌超1%,沪指失守3300点关口,日线录得4连阴走势。游…

IS210AEPSG1AFC磁场由串联励磁绕组和并联励磁的组合提供

​ IS210AEPSG1AFC磁场由串联励磁绕组和并联励磁的组合提供 复合发生器 在这种类型中,磁场由串联励磁绕组和并联励磁的组合提供,并联磁场有许多圈数的导线,但它只承载小电流,而串联励磁绕组有几圈粗线并承载负载电流 串联励磁绕组…

【JAVAEE】线程池基础知识⭐

目录 1.什么是线程池 2.为什么要使用线程池 3.怎么使用线程池 4.自定义一个线程池 5.为什么不推荐使用系统自带的线程池 5.1线程池构造方法的参数和含义 5.1.1拒绝策略 5.2线程池的工作原理 5.3为什么不适用系统自带的线程池 补充:工厂模式 1.什么是线程池…

stm32 74hc595外扩io 调试记录

本文使用的测试代码如下 (1条消息) stm3274hc595外扩io调试工程,软件代码2片74hc595级联外扩IO资源-CSDN文库 有个项目对成本比较敏感,又想用ST的片子,输出管脚比较多,就考虑外扩IO,也有一些外扩IO的片子但是用下来成…

视频理解AI模型分类与汇总

人工智能领域视频模型大体也经历了从传统手工特征,到卷积神经网络、3D卷积网络、双流网络、transformer的发展脉络。 视频的技术大多借鉴图像处理技术,只是视频比图片多了一个时间维度。 下面内容先简单汇总下,后续再逐渐补充。 1. 双流网…

DS200SLCCG1AFG随着频率的增加而增加。具有高 Dk 的基材将具有高 Df。

​ DS200SLCCG1AFG随着频率的增加而增加。具有高 Dk 的基材将具有高 Df。 Df 耗散因数(又名损耗角正切) Df 测量由于电阻加热而损失了多少功率。PCB 基板形成电容器作为绝缘体,导体通常位于两侧。作为电容器,它会表现出容抗&#…

MySQL---聚合函数、字符串函数、数学函数、日期函数

1. 聚合函数 数据准备: create database mydb4; use mydb4;create table emp(emp_id int primary key auto_increment comment 编号,emp_name char(20) not null default comment 姓名,salary decimal(10,2) not null default 0 comment 工资,department char(20…

激光切割机要换新该怎么选?如何减少激光加工设备的老化问题?

激光器的销量持续攀高,激光切割机的应用领域涉及众多行业。随着加工范围和厚度的提升,运行多年的中低功率 激光切割机已经不能满足时下很多设备加工的需求,要提企业的加工能力,选择一款新的激光加工设备已是势在必行。 激光切割机…

Ubuntu使用(持续更新中)

文章目录 1.以root身份登录2.配置apt源3.安装Docker3.1BUG: 4.在VMware中克隆Ubuntu5.配置apt国内源 额 我们项目用的CentOS7,由于CentOS8停止了维护,客户反馈了这个问题,所以玩一下Ubuntu,我使用的是Ubuntu Serve LST,如有不同,另行百度 1.以root身份登录 Ubuntu默认是不开启r…

java异常的声明、捕获、抛出、处理(throws、throw、try-catch详解)

异常的处理 LBYL: Look Before You Leap. 在操作之前就做充分的检查. 即:事前防御型 boolean ret false; ret 登陆游戏(); if (!ret) { 处理登陆游戏错误; return; } ret 开始匹配(); if (!ret) { 处理匹配错误; return; } ret 游戏确认(); if (!ret) { 处理游…

在职读研是理想还是情怀?你想要的都将在社科大能源管理硕士项目实现

在职读研是理想还是情怀呢,每个读研人的想法不同,原因也有所不同。但选择在职继续攻读硕士学位的群体也有着共同点,他们都是想拥有高学历,拥有高目标的一群人。探寻新的起点和终点是他们想所要追求的。不管读研的初心是什么&#…