回归预测 | MATLAB实现基于QPSO-GRU、PSO-GRU、GRU多变量回归预测

news2024/11/20 6:20:57

回归预测 | MATLAB实现基于QPSO-GRU、PSO-GRU、GRU多变量回归预测

目录

    • 回归预测 | MATLAB实现基于QPSO-GRU、PSO-GRU、GRU多变量回归预测
      • 效果一览
      • 基本描述
      • 程序设计
      • 参考资料

效果一览

1
2
3
7

5
6
4

8
9
10
12
13

12

基本描述

1.Matlab实现QPSO-GRU、PSO-GRU和GRU门控循环单元多变量回归预测;
2.输入数据为多输入单输出数据,输入多个特征,输出单个变量;
3.运行环境Matlab2020及以上,依次运行Main1GRUNN、Main2PSOGRUNN、Main3QPSOGRUNN、Main4CDM即可,其余为函数文件无需运行,所有程序放在一个文件夹,data为数据集,输入多个特征,输出单个变量;
GRU(门控循环单元模型)与粒子群算法优化后的GRU(PSOGRU)以及量子粒子群算法优化后的GRU(QPSOGRU)对比实验,可用于风电、光伏等负荷预测,时序预测,数据为多输入单输出预测,最后一列输出,PSO、QPSO优化超参数为隐含层1节点数、隐含层2节点数、最大迭代次数和学习率。
4.命令窗口输出MAE、MAPE、RMSE和R2;

程序设计

  • 完整程序和数据下载:私信博主。
Function_name='F1'; % Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper) 设定适应度函数
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);  %设定边界以及优化函数

N=20;
M=1000;
[xm1,trace1]=pso(N,M,dim,lb,ub,fobj);
[xm2,trace2]=qpso(N,M,dim,lb,ub,fobj);

figure('Position',[269   240   660   290])
%Draw search space
subplot(1,2,1);
func_plot(Function_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])

%Draw objective space
subplot(1,2,2);
plot(trace1,'Color','b','linewidth',1.5)
hold on
plot(trace2,'Color','r','linewidth',1.5)
title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');

axis tight
grid on
box on
legend('PSO','QPSO')

%% 取对数 更方便看
figure
plot(log10(trace1),'linewidth',1.5)
hold on
plot(log10(trace2),'linewidth',1.5)
legend('PSO','QPSO')
title('PSO VS QPSO')
xlabel('iteration/M')
ylabel('fitness value(log10)')
function func_plot(func_name)

[lb,ub,dim,fobj]=Get_Functions_details(func_name);

switch func_name 
    case 'F1' 
        x=-100:2:100; y=x; %[-100,100]
        
    case 'F2' 
        x=-100:2:100; y=x; %[-10,10]
        
    case 'F3' 
        x=-100:2:100; y=x; %[-100,100]
        
    case 'F4' 
        x=-100:2:100; y=x; %[-100,100]
    case 'F5' 
        x=-200:2:200; y=x; %[-5,5]
    case 'F6' 
        x=-100:2:100; y=x; %[-100,100]
    case 'F7' 
        x=-1:0.03:1;  y=x  %[-1,1]
    case 'F8' 
        x=-500:10:500;y=x; %[-500,500]
    case 'F9' 
        x=-5:0.1:5;   y=x; %[-5,5]    
    case 'F10' 
        x=-20:0.5:20; y=x;%[-500,500]
    case 'F11' 
        x=-500:10:500; y=x;%[-0.5,0.5]
    case 'F12' 
        x=-10:0.1:10; y=x;%[-pi,pi]
    case 'F13' 
        x=-5:0.08:5; y=x;%[-3,1]
    case 'F14' 
        x=-100:2:100; y=x;%[-100,100]
    case 'F15' 
        x=-5:0.1:5; y=x;%[-5,5]
    case 'F16' 
        x=-1:0.01:1; y=x;%[-5,5]
    case 'F17' 
        x=-5:0.1:5; y=x;%[-5,5]
    case 'F18' 
        x=-5:0.06:5; y=x;%[-5,5]
    case 'F19' 
        x=-5:0.1:5; y=x;%[-5,5]
    case 'F20' 
        x=-5:0.1:5; y=x;%[-5,5]        
    case 'F21' 
        x=-5:0.1:5; y=x;%[-5,5]
    case 'F22' 
        x=-5:0.1:5; y=x;%[-5,5]     
    case 'F23' 
        x=-5:0.1:5; y=x;%[-5,5]  
end    

    

L=length(x);
f=[];

for i=1:L
    for j=1:L
        if strcmp(func_name,'F15')==0 && strcmp(func_name,'F19')==0 && strcmp(func_name,'F20')==0 && strcmp(func_name,'F21')==0 && strcmp(func_name,'F22')==0 && strcmp(func_name,'F23')==0
            f(i,j)=fobj([x(i),y(j)]);
        end
        if strcmp(func_name,'F15')==1
            f(i,j)=fobj([x(i),y(j),0,0]);
        end
        if strcmp(func_name,'F19')==1
            f(i,j)=fobj([x(i),y(j),0]);
        end
        if strcmp(func_name,'F20')==1
            f(i,j)=fobj([x(i),y(j),0,0,0,0]);
        end       
        if strcmp(func_name,'F21')==1 || strcmp(func_name,'F22')==1 ||strcmp(func_name,'F23')==1
            f(i,j)=fobj([x(i),y(j),0,0]);
        end          
    end
end

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/127596777?spm=1001.2014.3001.5501
[2] https://download.csdn.net/download/kjm13182345320/86830096?spm=1001.2014.3001.5501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/694131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Word中页码变成 {PAGE \* MERGEFORMAT}

今天在写材料的时候Word突然就完蛋了,页码什么的出现乱码了,然后就搜索了一下,找到了解决办法,这里记录一下,方便以后查阅。 Word中页码变成 {PAGE \* MERGEFORMAT}

AndroidTV开发14优雅地实现TV端超长巨图加载

AndroidTV开发14优雅地实现TV端超长巨图加载 1.前言 之前在Android和Vue端都实现过长图加载,虽然实现需求,但是有很多问题没有解决,效果也不尽人意今天就各种问题来分析一下: 图片加载时清晰度不是很好,会失真的情况…

vscode编辑器如何显示.git隐藏文件, vscode不显示git文件怎么办

问题描述 我想要设置pre-commit hook ,但是我在vscode项目里创建的时候,发现此文件已存在,想看隐藏文件夹 .git,但是我看不到它,想看隐藏文件夹 .git,此时该怎么办呢? 1. 文件-首选项-设置 2. 搜索 files , 然后去掉…

Canny边缘检测

Canny边缘检测 步骤: 使用高斯滤波器,以平滑图像,滤波噪声计算图像中每个像素点的梯度强度和方向应用非极大值抑制(Non-Maximum Suppression),以消除边缘检测带来的杂散响应应用双阈值(Double…

Zadig v1.16.0升级到v1.17.0

文章目录 数据备份MongoDB备份MySQL备份 升级 参考官网链接: https://docs.koderover.com/zadig/Zadig%20v1.17.0/release-notes/v1.17.0/#%E5%8A%9F%E8%83%BD%E5%88%97%E8%A1%A8 数据备份 MongoDB备份 rootzz808:~# kubectl get svc -n zadig |grep mongo kr-mon…

STM32单片机(六)TIM定时器 -> 第四节:TIM输出比较练习3(PWM驱动直流电机)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

防近视台灯有效果吗?专家公认的防近视台灯

答案是有的。主要是因为这种护眼台灯的光线都比较柔和,它主要是由发光源和灯具两部分组成。发光源呢主要是以LED灯作为光源,光线比较稳定均匀一点。而灯具的设计可以改善光线的分布,柔化光线,提高均匀度和光照面积等等&#xff0c…

重金属冶炼VR仿真实训教学提高了实验效率

有色金属冶炼VR虚拟实操软件是一种新型的教育工具,它通过VR虚拟现实技术,将学生带入到真实的有色金属冶炼过程中,让学生在模拟环境中进行实践操作,从而提高学生的实践能力和理论知识水平。相比传统的教学方式,有色金属…

vue属性中的数据绑定v-text与响应式操作v-html+vue中鼠标悬停显示效果+布尔值在vue中引用属性中的操作

1&#xff0c;vue属性中的数据绑定v-text与响应式操作v-html 当我们导入vue框架后&#xff0c;对于数据的绑定功能&#xff0c;我们使用v-text的语法功能&#xff1a; <div v-text "message"><div>在该情况下&#xff0c;我们可以输出对应属性的文本&a…

idea服务强制关闭导致mysql某条数据被锁

今天开发测试时候&#xff0c;idea debug模式下报错&#xff0c;数据库表事务没有提交&#xff0c;idea服务强制关闭&#xff0c;导致数据库表某一条记录被锁 1、查进程&#xff0c;查找被锁表的那个进程的ID show processlist;command 为waitting的就是锁住的表&#xff0c;…

LeetCode做题笔记第11题:盛最多水的容器

题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 来源&#xff1a;力扣&#xf…

uni-app 微信小程序端调用扫一扫识别小程序码(菊花码,太阳码)

返回值中&#xff0c;path就是小程序码对应的路径 扫描的码必须本小程序AppID和secret生成的&#xff0c;也可以在小程序后台-->工具-->填写小程序路径 生成进行测试 uni.scanCode({success(res) {console.log(res)} })

error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054

clone MiniGPT-4的时候报错 Cloning into MiniGPT-4... error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054 fatal: the remote end hung up unexpectedly解决办法 先 git config --global http.sslVerify "false"然后再clone就好了…

Android-推荐一个RecyclerView悬浮头部(StickyItemDecoration)

在日常Android列表开发当中&#xff0c;我们可能会遇到以下的需求&#xff1a; 我们在滑动列表的时候&#xff0c;头部View置顶不可以滑动. 我刚好看到有一个开源库可以帮我们快速实现,分享出来希望能提高看文章的小伙伴的开发效率. StickyItemDecoration StickyItemDecoration…

三极管开关电路限流电阻怎么选取

这是一个MCU驱动小功率器件的电路&#xff0c;这里仅用小功率灯珠代替负载&#xff0c;电路中用到了一个NPN的三极管&#xff0c;这个三极管在这里充当一个开关。 三极管当作开关时其工作在饱和状态&#xff0c;BE间的电压要大于开启电压&#xff0c;同时BE间的电压大于CE间的电…

【MySQL】数据库 ⑤

✍导出数据 1、使用 SELECT ... INTO OUTFILE 语句导出数据 SELECT...INTO OUTFILE 是 MySQL 用于导出数据的语句&#xff0c;它允许将查询结果保存到指定的文件中。 该语句的基本语法如下&#xff1a; SELECT column1, column2, ... INTO OUTFILE file_path FIELDS TE…

你知道什么是大语言模型吗

在自然语言处理领域&#xff0c;大语言模型是一类十分重要的技术。顾名思义&#xff0c;大语言模型指的是比较“大”的&#xff08;神经网络&#xff09;语言模型&#xff0c;它们以自上文推理词语概率为核心任务。随着机器学习和深度学习技术的不断发展&#xff0c;人工智能的…

【样式静态】创建地址 省市区,详细地址,姓名,联系方式,电话

效果图 uview 2.0 <template><view class"addbox"><view class"order bgf common_p u-border-t"><view class"common_title"><text></text> 客户信息</view><view class"flex_align_cente…

再见Navicat,dbeaver才是真爱

数据库连接工具&#xff0c;后端程序员必须要用到工具&#xff0c;常用的是 Navicat&#xff0c;Navicat是收费工具&#xff0c;如果使用破解的方式可能会收到律师函&#xff0c;今天了不起给大家推荐一款开源免费的数据库连接工具 -- dbeaver。 功能特性 1、几乎支持所有数据…

百度内容审核接口测试

百度内容审核接口测试 1、成为开发者 三步完成账号的基本注册与认证&#xff1a; STEP1&#xff1a;点击百度AI开放平台导航右侧的控制台&#xff0c;选择需要使用的AI服务项。若为未登录状态&#xff0c;将跳转至登录界面&#xff0c;请您使用百度账号登录。如还未持有百度…