区间预测 | 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 备忘灵管理员角色:需求背…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
