当前位置: 首页 > article >正文

区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测

区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测

目录

    • 区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测
      • 效果一览
      • 基本介绍
      • 模型描述
      • 程序设计
      • 参考资料

效果一览

2
1

3

基本介绍

MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测。QRDNN模型是一种用于时间序列预测的深度神经网络模型,它通过结合深度神经网络和分位数回归的方法,可以实现对时间序列区间预测的能力,具有一定的优势和应用前景

模型描述

  • QRDNN(Quantile Regression Deep Neural Network)是一种用于时间序列预测的深度神经网络模型。它通过结合深度神经网络和分位数回归的方法,实现对时间序列区间预测的能力。

  • 在QRDNN模型中,首先使用卷积神经网络(CNN)或循环神经网络(RNN)等方法对时间序列数据进行特征提取和表示学习。然后,将提取出的特征输入到分位数回归层中,通过多个分位数输出来实现对不同置信水平的区间预测。

  • 具体来说,QRDNN模型可以表示为以下数学公式:

y τ = f τ ( x ; θ ) y_\tau = f_\tau(x;\theta) yτ=fτ(x;θ)

  • 其中, y τ y_\tau yτ表示在置信水平为 τ \tau τ时的预测值, x x x表示输入的时间序列数据, θ \theta θ表示模型参数。 f τ f_\tau fτ是分位数回归层,它可以通过训练得到。

  • QRDNN模型的优点在于,它可以提供对不同置信水平的区间预测,因此可以更好地反映预测结果的不确定性。此外,由于使用了深度神经网络进行特征提取和表示学习,QRDNN模型可以更好地处理复杂的时间序列数据。

程序设计

  • 完整程序和数据获取方式:私信博主。

1.Matlab实现基于QRDNN分位数回归深度神经网络的时间序列区间预测模型;
2.多图输出、多指标输出(MAE、RMSE、MSE、R2),多输入单输出,含不同置信区间图、概率密度图;
3.data为数据集,功率数据集,用过去一段时间的变量,预测目标,目标为最后一列,也可适用于负荷预测、风速预测;MainQRDNNTS为主程序,其余为函数文件,无需运行

%% DNN网络训练
tic
DNNnet = trainNetwork(inputn_train,outputn_train,layers,opts);
toc;
analyzeNetwork(layers)
%% DNN测试数据
function [DNN, state] = TrainRecovery(n)
%% 恢复之前的结果,接着进行训练;或者加载现有神经网络.
% n:各层神经元个数,其中按顺序第一个元素为输入层神经元的个数,
% 最后一个元素为输出层神经元的个数,其余元素为隐藏层的神经元个数.
% DNN: cell数组,依次存放A1, A2, A3, ...和 E, Loss.
% state: 若返回值>0则表示DNN已训练完毕,返回精度.


DNN = LoadNN();

if isempty(DNN)
    % 从头开始训练.
    h = length(n); % 网络层数
    DNN = cell(1, h+1);
    for i = 1:h-1
        % 第一列为偏置项.
        DNN{i} = rand(n(i+1), n(i) + 1) - 0.5;
    end
    % 倒数第2个元素为零列和单位阵的组合.
    DNN{h} = [zeros(n(h), 1), eye(n(h))];
end

disp('DNN infomation:'); disp(DNN);

for i = 1:length(n)
    fprintf('第[%g]层神经元个数: %g.\n', i, n(i));
end

%% 检测此神经网络是否已训练完成.
state = 0;
if isempty(DNN{end})
    return
end
EarlyStopping = 3; %DNN早停条件
loss = DNN{end}(3, 1:end-EarlyStopping);
best = max(loss);
count = 0;
for i = max(length(loss)+1, 1):length(DNN{end})
    if 0 <= DNN{end}(3,i) && DNN{end}(3,i) <= best
        count = count + 1;
        if count == EarlyStopping
            state = best;
        end
    else
        break
    end
end

end
————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kjm13182345320/article/details/129066749

参考资料

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


http://www.kler.cn/a/445876.html

相关文章:

  • Hutool工具包的常用工具类的使用介绍
  • 如何使用 WebAssembly 扩展后端应用
  • ES搜索原理
  • 04、Vue与Ajax
  • 15.初识接口1 C#
  • 【MAC】深入浅出 Homebrew 下 Nginx 的安装与配置指南
  • PDF无法打印!怎么办?
  • 数据结构_双向循环链表实战
  • 大数据:HDFS:特性、架构
  • C# 中的闭包
  • 【C++】C++中的lambda函数详解
  • Unity ECS和OOP优劣对比
  • 数据结构泛谈
  • git以及gitee仓库注册创建
  • 38.在 Vue 3 中使用 OpenLayers 导出地图为 PDF
  • C#.net CAD二次开发调试时进行日志记录并输出错误
  • 【Python】【数据分析】深入探索 Python 数据可视化:Plotly 绘图库全面解析
  • 使用LS-DYNA对秸秆进行切削仿真(记录版)
  • 免费开源!推荐一款网页版数据库管理工具!
  • edge_tts 实现实时流式语音播放输出
  • 安装指定版本的python这里以3.11为例子
  • 【Tomcat】第五站:Servlet容器
  • mfc140.dll是什么东西?mfc140.dll缺失的几种具体解决方法
  • 腾讯云云开发 Copilot 深度探索与实战分享
  • STM32单片机芯片与内部33 ADC 单通道连续DMA
  • 子域提取工具,子域名收集神器,支持多种数据源和枚举选项,域名发现工具,可以为任何目标枚举海量的有效子域名,安全侦察工具,利用证书透明原则监控部署的新子域