区间预测 | 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 备忘灵管理员角色:需求背…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
