首页 > 其他分享 >QRCNN-Attention多变量时序预测 基于分位数回归的卷积神经网络结合注意力机制的多变量时序预测

QRCNN-Attention多变量时序预测 基于分位数回归的卷积神经网络结合注意力机制的多变量时序预测

时间:2024-12-23 16:04:00浏览次数:5  
标签:function QRCNN layer end 变量 时序 data dropoutFactor

目录

Matlab基于QRCNN-Attention多变量时序预测 基于分位数回归的卷积神经网络结合注意力机制的多变量时序预测

效果分析

在这里插入图片描述

在这里插入图片描述

基本介绍

QRCNN-Attention多变量时序预测 基于分位数回归的卷积神经网络结合注意力机制的多变量时序预测。运行环境matlab2021及以上

直接替换Excel数据即可用!注释清晰,适合新手小白~

订阅专栏只能获取专栏内一份代码。

程序设计

function pimwp = PINAW(T_sim, T_train)

%%  矩阵转置
if size(T_sim, 1) ~= size(T_train, 1)
    T_sim = T_sim';
end

%%  区间平均宽度百分比
pimwp = 1 / length(T_train) * sum((T_sim(:, end) - T_sim(:, 1))...
                                ./ (max(T_train)-min(T_train)));

end

function [in,out]=data_process(data,num)
% 采用1-num作为输入 第num+1作为输出
n=length(data)-num;
for i=1:n
    x(i,:)=data(i:i+num);
end
in=x(:,1:end-1);
out=x(:,end);

function [mae,rmse,mape,error]=calc_error(x1,x2)

error=x2-x1;  %计算误差
rmse=sqrt(mean(error.^2));
disp(['1.均方差(MSE):',num2str(mse(x1-x2))])
disp(['2.根均方差(RMSE):',num2str(rmse)])

 mae=mean(abs(error));
disp(['3.平均绝对误差(MAE):',num2str(mae)])

 mape=mean(abs(error)./x1);
 disp(['4.平均相对百分误差(MAPE):',num2str(mape*100),'%'])
Rsq1 = 1 - sum((x1 - x2).^2)/sum((x1 - mean(x2)).^2);
disp(['5.R2:',num2str(Rsq1*100),'%'])
end




classdef spatialDropoutLayer < nnet.layer.Layer & nnet.layer.Formattable
    % Example custom spatial dropout layer.

    properties
        DropoutFactor
    end

    methods
        function layer = spatialDropoutLayer(dropoutFactor,NameValueArgs)
            % layer = spatialDropoutLayer creates a spatial dropout layer
            % with dropout factor 0.02;
            %
            % layer = spatialDropoutLayer(dropoutProb) creates a spatial
            % dropout layer with the specified probability.
            %
            % layer = spatialDropoutLayer(__,Name=name) also specifies the
            % layer name using any of the previous syntaxes.

            % Parse input arguments.
            arguments
                dropoutFactor = 0.02;
                NameValueArgs.Name = ""
            end
            name = NameValueArgs.Name;

            % Set layer properties.
            layer.Name = name;
            layer.Description = "Spatial dropout with factor " + dropoutFactor;
            layer.Type = "Spatial Dropout";
            layer.DropoutFactor = dropoutFactor;
        end

        function Z = predict(layer, X)
            % Forward input data through the layer at prediction time and
            % output the result.
            %
            % Inputs:
            %         layer - Layer to forward propagate through 
            %         X     - Input data
            % Output:
            %         Z     - Output of layer forward function

            % At prediction time, the output is unchanged.
            Z = X;
        end

        function Z = forward(layer, X)
            % Forward input data through the layer at training
            % time and output the result and a memory value.
            %
            % Inputs:
            %         layer - Layer to forward propagate through 
            %         X     - Input data
            % Output:
            %         Z - Output of layer forward function

            dropoutFactor = layer.DropoutFactor;

            % Mask dimensions.
            fmt = dims(X);
            maskSize = size(X);
            maskSize(ismember(fmt,'ST')) = 1;

            % Create mask.
            dropoutScaleFactor = single(1 - dropoutFactor);
            dropoutMask = (rand(maskSize,'like',X) > dropoutFactor) / dropoutScaleFactor;

            % Dropout.
            Z = X .* dropoutMask;
        end
    end
end


参考资料

[1] https://blog.csdn.net/m0_57362105/article/details/128364733?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/m0_57362105/article/details/128327690?spm=1001.2014.3001.5502

标签:function,QRCNN,layer,end,变量,时序,data,dropoutFactor
From: https://blog.csdn.net/m0_57362105/article/details/144669943

相关文章

  • Python print输出变量的4种方式
    1)f-stringPyhon从3.6开始,新增了f-string方法:name="Mike"age=18print(f"Mynameis{name}andI'm{age}yerasold")#MynameisMikeandI'm18yerasold 相比其它方法,这个方法更简洁,并且运行高效。2)占位符模式(%formatting)print("Mynameis%s&......
  • 编写程序,利用指针实现排序(指针专题)。将输入的四个整数按由大到小的顺序输出。 已定义
    #include<stdio.h>voidswap(int*pa,int*pb){   intt;   t=*pa;*pa=*pb;*pb=t;}intmain(){   intarr[4]={0};   inti,j,n=4;   for(i=0;i<4;i++)   {       scanf("%d",&arr[i]);   }   ......
  • 变量、常量、作用域、关键字、修饰符、标识符、运算符20221222
    变量、常量、作用域20241222变量◆变量是什么:就是可以变化的量!◆Java是一种强类型语言,每个变量都必须声明其类型◆Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。◆使用逗号隔开在一行定义多个同类型变量,可以但是不推荐//intdata_04=1,data......
  • 变量、常量、作用域、关键字、修饰符、标识符20221222
    变量、常量、作用域20241222变量◆变量是什么:就是可以变化的量!◆Java是一种强类型语言,每个变量都必须声明其类型◆Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。◆使用逗号隔开在一行定义多个同类型变量,可以但是不推荐//intdata_04=1,data......
  • 静态变量(static)
    静态变量(static)静态全局变量静态局部变量静态成员变量C++中,static关键字可用于不同类型的变量:静态全局变量、静态局部变量和静态成员变量多线程下,静态全局变量、静态局部变量和静态成员变量无论初始化是否安全,访问和修改变量时都需要使用互斥锁或其他同步机制......
  • 如何在易优CMS中自定义ad标签中的变量名?
    在易优CMS中,如果你希望在ad标签中自定义变量名,可以使用id属性。通过设置id属性,你可以将默认的$field变量名替换为你自定义的变量名。以下是一个具体的示例:{eyou:adaid='37'id='field1'}<ahref="{$field1.links}"{$field1.target}><imgalt="{$field1.title}......
  • 如何在易优CMS中定义并使用自定义变量?
    在易优CMS中,你可以使用assign标签来定义自定义变量,并在其他标签中引用这些变量。以下是一个具体的示例:{eyou:assignname='typeid'value='5'/}{eyou:typetypeid='$typeid'}<ahref="{$field.typeurl}">{$field.typename}</a>{/eyou:type}{eyou:cha......
  • 【工具变量】上市公司企业供应链成本分担数据(2010-2023年)
    一、测算方式:参考C刊《经济管理》刘红霞老师(2024)的做法,从绿色投资企业与供应链其他成员企业关系层面出发,使用两个指标测度供应链成本分担:一是单向供应链成本分担总额(CS_get),是绿色投资企业从供应链其他成员企业获取的成本分担,强调了链上企业对绿色投资企业单向的成本分担水平,使......
  • PyTorch进行汽车油耗多变量线性预测
    数据集AUTOMPGAutoMPG(MilesPerGallon)数据集,它是一个经典的回归问题数据集,常用于机器学习和统计分析。该数据集记录了不同型号汽车的燃油效率(即每加仑燃油行驶的英里数)以及其他多个相关特征。数据集特征:mpg:每加仑燃油行驶的英里数(目标变量)。cylinders:气缸数量,表示发......
  • static修饰成员的特点及static修饰成员变量内存图解-java se进阶 day01
    1.static介绍static是静态的意思,它可以用于修饰成员变量和成员方法2.static的特点1.被static修饰了的成员变量,可以被类中的所有对象所共享虽然stu02没有给school赋值,但是我们用stu02调用时依旧成立,并且打印了南昌交通学院,因为school被共享了,恰好stu01又为其赋值了2.被sta......