区间预测 | MATLAB实现QRCNN卷积神经网络分位数回归时间序列区间预测
区间预测 | MATLAB实现QRCNN卷积神经网络分位数回归时间序列区间预测
目录
- 区间预测 | MATLAB实现QRCNN卷积神经网络分位数回归时间序列区间预测
- 效果一览
- 基本介绍
- 模型描述
- 程序设计
- 参考资料
效果一览



基本介绍
区间预测 | MATLAB实现QRCNN卷积神经网络分位数回归时间序列区间预测
1.Matlab实现基于QRCNN分位数回归卷积神经网络的时间序列区间预测模型;
2.多图输出、多指标输出(MAE、RMSE、MSE、R2),多输入单输出,含不同置信区间图、概率密度图;
3.data为数据集,功率数据集,用过去一段时间的变量,预测目标,目标为最后一列,也可适用于负荷预测、风速预测;MainQRCNNTS为主程序,其余为函数文件,无需运行;
4.代码质量高,注释清楚,含数据预处理部分,处理缺失值,如果为nan,用上一行替代,也含核密度估计。
模型描述
QRCNN是一种基于卷积神经网络(CNN)的分位数回归模型,用于时间序列区间预测。其全称为Quantile Regression Convolutional Neural Network。该模型可以用于预测时间序列数据的不同分位数,例如预测股票价格的上下限、风速的极值等。由于QRCNN采用卷积神经网络的结构,可以有效地捕捉时间序列数据的局部和全局特征,从而提高预测准确性。
QRCNN模型的主要思想是将时间序列数据分解成一系列窗口,并将每个窗口视为一个图像。然后,使用卷积神经网络对这些图像进行特征提取和分析,最终输出每个分位数的预测结果。QRCNN模型的训练过程采用分位数损失函数,以最小化所有分位数的预测误差。
QRCNN模型的优点包括:
能够有效地处理时间序列数据的不确定性和非线性特征;
能够同时预测多个分位数,从而提供更全面的预测结果;
可以灵活地处理不同长度的时间序列数据。
总之,QRCNN模型是一种用于时间序列区间预测的强大工具,可以帮助人们更好地理解和应用时间序列数据。
QRCNN模型的公式包括输入层、卷积层、池化层、全连接层和输出层。以下是QRCNN模型的主要公式:
输入层:
假设时间序列数据为 x t x_t xt,则输入层将每个时间步 t t t的数据作为一个输入节点 x t x_t xt。
卷积层:
假设第 k k k个卷积核的大小为 d k d_k dk,则第 k k k个卷积层的输出 z k z_k zk可以表示为:
z k = σ ( W k ∗ x + b k ) z_k=\sigma(W_k * x+b_k) zk=σ(Wk∗x+bk)
其中, W k W_k Wk是第 k k k个卷积核的权重矩阵, ∗ * ∗表示卷积操作, b k b_k bk是偏置项, σ \sigma σ是激活函数,通常使用ReLU或tanh函数。
池化层:
假设第 k k k个池化操作的大小为 m k m_k mk,则第 k k k个池化层的输出 y k y_k yk可以表示为:
y k = m a x p o o l ( z k ) y_k=maxpool(z_k) yk=maxpool(zk)
其中, m a x p o o l maxpool maxpool表示最大池化操作。
全连接层:
假设第 l l l个全连接层的输出为 h l h_l hl,则第 l l l个全连接层的输出 h l h_l hl可以表示为:
h l = σ ( W l ∗ h l − 1 + b l ) h_l=\sigma(W_l*h_{l-1}+b_l) hl=σ(Wl∗hl−1+bl)
其中, W l W_l Wl是第 l l l个全连接层的权重矩阵, b l b_l bl是偏置项, σ \sigma σ是激活函数。
输出层:
假设要预测 q q q个分位数,第 q q q个分位数为 τ q \tau_q τq,则输出层的输出 y q y_q yq可以表示为:
y q = F τ q ( h L ) y_q=F_{\tau_q}(h_L) yq=Fτq(hL)
其中, F τ q ( h L ) F_{\tau_q}(h_L) Fτq(hL)表示第 L L L层的输出 h L h_L hL在分位数 τ q \tau_q τq处的累积分布函数(CDF)。
损失函数:
QRCNN模型采用分位数损失函数,定义为:
L τ ( y , y ^ ) = ( 1 − τ ) ∣ y − y ^ ∣ ( y ≤ y ^ ) + τ ∣ y − y ^ ∣ ( y > y ^ ) L_{\tau}(y,\hat{y})=(1-\tau)|y-\hat{y}|{(y\le \hat{y})}+\tau|y-\hat{y}|{(y> \hat{y})} Lτ(y,y^)=(1−τ)∣y−y^∣(y≤y^)+τ∣y−y^∣(y>y^)
其中, y y y表示实际值, y ^ \hat{y} y^表示预测值, τ \tau τ表示分位数, ∣ ⋅ ∣ ( ⋅ ) | \cdot |_{(\cdot)} ∣⋅∣(⋅)表示指示函数。
最终,QRCNN模型的目标是最小化所有分位数的预测误差的总和,即:
m i n ∑ i = 1 n ∑ q = 1 Q L τ q ( y i , y i ^ ) min \sum_{i=1}^{n}\sum_{q=1}^{Q}L_{\tau_q}(y_i,\hat{y_i}) mini=1∑nq=1∑QLτq(yi,yi^)
其中, n n n表示样本数量, Q Q Q表示分位数个数。
程序设计
- 完整程序和数据获取方式:私信博主。
% Divide the data into training and validation data sets
numTrainFiles = 90;
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize');
% Define the convolutional neural network architecture.
layers = [
% Image Input Layer An imageInputLayer imageInputLayer([64 64 1])
% Convolutional Layer
convolution2dLayer(3,8,'Padding','same')
% Batch Normalization batchNormalizationLayer
% ReLU Layer The batchreluLayer
% Max Pooling Layer % More values means less weightsmaxPooling2dLayer(4,'Stride',4)%------------------------------convolution2dLayer(3,8,'Padding','same')batchNormalizationLayerreluLayermaxPooling2dLayer(5,'Stride',5)convolution2dLayer(3,8,'Padding','same')batchNormalizationLayerreluLayer
% Fully Connected Layer (Number of Classes) fullyConnectedLayer(8)
% Softmax Layer softmaxLayer
% Classification Layer The final layer classificationLayer];
% Specify the training options
options = trainingOptions('sgdm', ...'InitialLearnRate',0.001, ...'MaxEpochs',20, ...'Shuffle','every-epoch', ...'ValidationData',imdsValidation, ...'ValidationFrequency',8, ...'Verbose',false, ...'Plots','training-progress');
% Train the network
[net,info]= trainNetwork(imdsTrain,layers,options);% Converting Serial Network to an Object
netobj = net.saveobj;
% Extracting Fully Connected Layer's Weights To Evolve
FullConn=netobj.Layers(13, 1).Weights;
netbias=netobj.Layers(13, 1).Bias;%% Data for Each Weight
sizefinal=size(FullConn);
sizefinal=sizefinal(1,1);
for i=1:sizefinal
Inputs=FullConn(i,:);
Targets=Inputs;
data.Inputs=Inputs;
data.Targets=Targets;
datam{i}=JustLoad(data);
end;————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kjm13182345320/article/details/128252426
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340
相关文章:
区间预测 | MATLAB实现QRCNN卷积神经网络分位数回归时间序列区间预测
区间预测 | MATLAB实现QRCNN卷积神经网络分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRCNN卷积神经网络分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 区间预测 | MATLAB实现QRCNN卷积神经网络分位数回归时间序列区间预测…...
【AI 导航网站】为了更好的收集 AI 资源,我开发了一个 AI 导航网站
AI 导航网站 目前 AI 应用正呈迸发式增长,然而一个人获取资源的途径有限,对于目前存在的AI工具不能很好的收集总结,所以基于此,我开发了这个一个AI导航网站,希望通过它,收集出目前存在的热门的AI应用&…...
谈谈HMI 的自动化生成技术
人机界面(HMI)是自动化领域不可或缺重要组成部分。尽管人机界面系统的设计看上去并没有太大的技术门槛,但是设计一个HMI系统的工作量是巨大的。如果你没有足够的耐心便完成不了一个通用的HMI系统。构建UI控件库是一个似乎永远完不成的事情&am…...
docker安装elasticsearch
使用docker部署 部署elasticsearch # 拉取镜像 docker pull elasticsearch# 创建容器 docker run --name es -p 9200:9200 \-p 9300:9300 \-e "discovery.typesingle-node" \-e ES_JAVA_OPTS"-Xms64m -Xmx128m" \-v /home/es/conf/elasticsearch.yml:/…...
Docker:使用dockerFile创建镜像(war包和jar包)
1、使用war包打镜像 (1)在war的当前路径下,新建一个文件——Dockerfile (2)编辑Dockerfile文件 vim Dockerfile Dockerfile文件内容: FROM java:8 # 选择项目中要求的版本 MAINTAINER ylb …...
2.基础篇
目录 一、描述软件测试的生命周期(软件测试的流程) 二、如何描述一个bug 三、bug的级别(粗略划分) 四、bug的生命周期 五、因为一个bug和开发人员产生争执怎么办 六、如何设置弱网? 一、描述软件测试的生命周期&a…...
取代你的可能不是AI,而是比你更会使用AI的人
1、背景 从开始了解AI到现在已经1个月了,最明显的就是,产品层出不穷,以前只有技术人员才关系AI,现在各行各业都在关系AI,都希望通过它提高生产力和创造力; 在当今大数据和人工智能时代,职场和企…...
NECCS|全国大学生英语竞赛C类|词汇和语法|语法题|时态 非谓语动词 |19:00~20:15|完形填空·词性转化
14:35~14:45 15:45~16:2019:00~20:15 http://t.csdn.cn/XbsUy 目录 (一)时态 7. 将来进行时 8. 过去将来进行时 9. 现在完成时 10. 过去完成时编辑 11. 将来完成时 12. 现在完成时 13. 过去完成进行时 (…...
【高等数学笔记】Stolz定理
文章目录 Stolz定理 ∗ ∞ \cfrac{*}{\infty} ∞∗型 0 0 \cfrac{0}{0} 00型 例子1. 算术平均数的极限2. Stolz定理可以被理解为“数列的洛必达法则”,它揭示了两个数列之比的极限和相邻两项之差的比的极限的关系。 Stolz定理 ∗ ∞ \cfrac{*}{\infty} ∞∗型…...
【24】核心易中期刊推荐——图像处理研究大数据及智能处理研究
🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…...
Codeforces Round 870 (Div. 2)【A、B、C、D】
文章目录 A. Trust Nobody(暴力)B. Lunatic Never Content(数学)C. Dreaming of Freedom(数学、暴力)D. Running Miles(前缀、后缀) 传送门 A. Trust Nobody(暴力) 题意:给出n个人的陈述,每个人陈述至少有ai个人说谎,让你求出可能是说谎人数…...
BetaFlight统一硬件AOCODARC H7DUAL配置文件讨论
BetaFlight统一硬件AOCODARC H7DUAL配置文件讨论 1. 源由2. Review配置3. 分析整理3.1 生产商信息3.2 磁力计3.3 气压计3.4 陀螺仪3.5 串口RxTx3.6 板载Flash3.7 模拟OSD MAX74563.8 PPM接收机3.9 伺服器3.10 LED灯带3.11 蜂鸣器3.12 电机 X83.13 ADC(电压/电流/RSSI信号强度/空…...
力扣题库刷题笔记682-棒球比赛
1、题目如下: 2、个人Python代码实现如下: 代码如下: class Solution: def calPoints(self, operations: List[str]) -> int: i 0 #用于遍历元素的下标 while i < len(operations): …...
SpringCloud------Eureka修改实例显示信息、服务发现Discovery、自我保护(六)
SpringCloud------Eureka修改实例显示信息、服务发现Discovery、自我保护(六) 1.actuator微服务信息完善 2.服务发现Discovery 3.Eureka自我保护 actuator微服务信息完善 web和actuator依赖用于图形化监控 1.主机名称:服务名称修改 新增…...
Java 远程debug,IDEA 远程 Debug 调试
有时候我们需要进行远程的debug,本文研究如何进行远程debug,以及使用 IDEA 远程debug的过程中的细节。看完可以解决你的一些疑惑。 配置 远程debug的服务,以SpringBoot微服务为例。 首先,启动SpringBoot需要加上特定的参数。 …...
将webrtc的音频模式改为共享模式
修改音频设备模式:打开文件modules/audio_device/include/audio_device.h,将AudioDeviceModule::kPlatformDefaultAudioProcessing为true改为false。这将禁用默认的音频处理,使得可以修改音频设备模式。 修改音频设备模式的初始化:打开文件modules/audio_device/audio_dev…...
电脑cpu占用率高?怎么办?1分钟快速解决!
案例:电脑cup过高怎么办? 【我的电脑运行缓慢,导致我学习和工作的效率很低。刚刚查看了一下电脑,发现它的cpu占用率很高。有没有小伙伴知道如何解决此电脑cpu过高的问题?】 电脑是我们生活中不可缺少的工具ÿ…...
使用JPA自动生成代码(轻松上手看了就会版)
目录 背景:方案概念:JPA 的主要作用 jpa简单使用(Springboot项目)jpa进阶使用总结 背景: 项目需要自动生成sql代码,不需要写sql语句,能够自动进行查询,我想到了JPA。 方案 概念&a…...
jdk动态代理
jdk动态代理:基于反射动态生成代理对象 pwp动态代理的步骤比较复杂,无需特别深入的理解,在jdk中固定的步骤,只需要知道这些步骤即可,不必钻牛角尖 动态代理涉及到的三个反射包类 InvocationHandlerMethodProxy 1. InvocationHand…...
备忘录模式
备忘录模式 备忘录模式定义使用场景1、撤销操作:2、游戏进度保存:3、定时器:4、浏览器历史记录:5、购物车状态保存:6、场景总结 角色定义Originator 发起人角色:Memento 备忘录角色:Caretaker 备忘灵管理员角色:需求背…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
