【DELM回归预测】基于matlab多元宇宙优化算法改进深度学习极限学习机数据回归预测【含Matlab源码 2230期】

news2024/11/23 11:21:28

⛄一、多元宇宙优化算法

MVO是Seyedali Mirjalili受到多元宇宙理论的启发提出来的元启发式优化算法。主要根据多元宇宙理论的3个主要概念-白洞、黑洞和虫洞,来建立数学模型。

MVO算法中的可行解对应宇宙,解的适应度对应该宇宙的膨胀率,在每一次迭代中,根据膨胀率对宇宙进行排序,通过轮盘赌随机选定一个宇宙作为白洞,宇宙间通过黑、白洞进行物质交换。假定:
在这里插入图片描述
式中:d为参数的个数;n为宇宙的个数;xji为第i个宇宙的第j维分量。
在这里插入图片描述
式中:Ui为第i个宇宙;NI(Ui)为第i个宇宙的归一化膨胀率;r1为[0,1]中的随机数;xkj为轮盘赌选定的第k个宇宙的第j维分量。

宇宙之间通过虫洞随机传送物质以保证种群多样性,同时都与最优宇宙交换物质以提高膨胀率。
在这里插入图片描述
式中:xij为第i个宇宙的第j维分量;Xj为当前最优宇宙的第j维分量;tbj和ubj分别为第j维分量的上、下界;r2,r3,r4均为[0,1]中的随机数;WEP为宇宙中的虫洞存在率;TDR为物质绕当前最优宇宙的旅行距离率。

WEP和TDR均为MVO的重要参数。
在这里插入图片描述
式中:WEPmax和WEPmin分别为参数WEP的上、下界,取0.2和1;l和L分别为当前迭代次数和最大迭代次数;p为算法的开发精度,取6。

MVO算法的优化进程始于种群的随机初始化,通过多个宇宙的并行迭代搜索,最终得到问题的近似最优解。

MVO算法运行流程如下:

(1)定义各参数,包括宇宙维度d,n,WEP,L,tbj和ubj等;

(2)初始化多元宇宙种群U;

(3)根据式(19)执行轮盘赌机制;

(4)计算各宇宙的膨胀率,确定当前最优宇宙;

(5)根据式(20),(22)更新WEP和TDR;

(6)根据式(23)更新最优宇宙,优于当前最优宇宙时将其替换,反之则保留当前最优宇宙;

(7)判断是否最大迭代次数,是,终止循环,输出最优宇宙和目标函数值;反之,则迭代次数加1,跳转至(3)继续循环。

MVO算法流程如图1所示。
在这里插入图片描述
图1 MVO算法流程图

⛄二、部分源代码

%% 基于多元宇宙算法优化的深度极限学习机DLM的预测算法
clear;clc;close all;
%% 导入数据
load data
%训练集——400个样本
P_train=input(:,(1:400));
T_train=output((1:400));
% 测试集——200个样本
P_test=input(:,(400:600));
T_test=output((400:600));
%% 归一化
% 训练集
[Pn_train,inputps] = mapminmax(P_train,0,1);
Pn_test = mapminmax(‘apply’,P_test,inputps);
% 测试集
[Tn_train,outputps] = mapminmax(T_train,0,1);
Tn_test = mapminmax(‘apply’,T_test,outputps);

%所有的数据输入类型应该为 N*dim,其中N为数据组数,dim为数据的维度
Pn_train = Pn_train’;
Pn_test = Pn_test’;
Tn_train = Tn_train’;
Tn_test = Tn_test’;

popsize = 20;%种群数量
Max_iteration = 50;%最大迭代次数
lb = -1;%权值下边界
ub = 1;%权值上边界
gamma=1; % Light Absorption Coefficient
beta0=2; % Attraction Coefficient Base Value
alpha=0.2; % Mutation Coefficient
alpha_damp=0.98; % Mutation Coefficient Damping Ratio

fobj = @(X)fun(X,Pn_train,Tn_train,Pn_test,Tn_test,ELMAEhiddenLayer,ActivF,C);
[Best_score,Best_pos,MVO_cg_curve]=MVO(popsize,Max_iteration,lb,ub,dim,fobj);
figure
plot(MVO_cg_curve,‘linewidth’,1.5)
xlabel(‘迭代次数’)
ylabel(‘适应度值’)
grid on
title(‘多元宇宙算法收敛曲线’)
%% 利用多元宇宙获得的初始权重,进行训练
BestWeitht = Best_pos;
%DELM训练
OutWeight = DELMTrainWithInitial(BestWeitht,Pn_train,Tn_train,ELMAEhiddenLayer,ActivF,C);
%训练集测试结果
predictValueTrainMVO = DELMPredict(Pn_train,OutWeight,ELMAEhiddenLayer);
% 反归一化
predictValueTrainMVO = mapminmax(‘reverse’,predictValueTrainMVO,outputps);
% 均方误差
Error1MVO = (predictValueTrainMVO’ - T_train);
MSE1MVO = mse(Error1MVO);
%测试集测试结果
predictValueTestMVO = DELMPredict(Pn_test,OutWeight,ELMAEhiddenLayer);
% 反归一化
predictValueTestMVO = mapminmax(‘reverse’,predictValueTestMVO,outputps);
% 均方误差
Error2MVO = (predictValueTestMVO’ - T_test);
MSE2MVO = mse(Error2MVO);

%% 测试集测试结果
predictValueTest = DELMPredict(Pn_test,OutWeight,ELMAEhiddenLayer);
% 反归一化
predictValueTest = mapminmax(‘reverse’,predictValueTest,outputps);
% 均方误差
Error2 = (predictValueTest’ - T_test);
MSE2 = mse(Error2);

%% 训练集结果画图
figure
plot(T_train,‘r*-’,‘linewidth’,1.5);
hold on
plot(predictValueTrainMVO,‘b:o’,‘linewidth’,1.5);
plot(predictValueTrain,‘g:o’,‘linewidth’,1.5);
grid on;
title(‘训练集结果’)
legend(‘真实值’,‘MVO-DELM预测值’,‘DELM预测值’);
figure
hold on
plot(Error1,‘b-’,‘linewidth’,1.5);
plot(Error1MVO,‘r-’,‘linewidth’,1.5);
legend(‘DELM误差’,‘MVO-DELM误差’)
grid on;
title(‘训练集误差’)

%% 测试集结果画图
figure
plot(T_test,‘r*-’,‘linewidth’,1.5);
hold on
plot(predictValueTestMVO,‘b:o’,‘linewidth’,1.5);
plot(predictValueTest,‘g:o’,‘linewidth’,1.5);
grid on;
title(‘测试集结果’)
legend(‘真实值’,‘MVO-DELM预测值’,‘DELM预测值’);
figure
plot(Error2MVO,‘r-’,‘linewidth’,1.5);
hold on
plot(Error2,‘b-’,‘linewidth’,1.5);
legend(‘MVO-DELM误差’,‘DELM误差’)
title(‘测试集误差’)
grid on;

disp([‘DELM训练集MSE:’,num2str(MSE1)]);
disp([‘DELM测试集MSE:’,num2str(MSE2)]);
disp([‘MVO_DELM训练集MSE:’,num2str(MSE1MVO)]);
disp([‘MVO_DELM测试集MSE:’,num2str(MSE2MVO)]);

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]桑茂景,谢丽蓉,李进卫,王斌,杨欢.基于LMD-IMVO-LSSVM的短期风速预测[J].可再生能源. 2021,39(09)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

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

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

相关文章

【第三部分 | 移动端开发】2:流式布局

目录 | 移动端布局 | 流式布局(百分比布局) | 案例:京东搜索页相关知识点 | 移动端布局 | 流式布局(百分比布局) 介绍 核心思想:不使用固定布局,而是使用百分比 为了保护盒子的内容不因拉伸…

Spring AOP使用与原理

AOP介绍 SpringAOP核心概念 上述中已经出现的关键词有Advice(顶级的通知类/拦截器)、MethodInvocation(方法连接点)、MethodInterceptor(方法拦截器) SpringAOP在此基础上又增加了几个类,丰富了AOP定义及使用概念,包括 Advisor:包含通知(拦截…

基于密度的划分、DBSCAN(机器学习)

目录 居于密度的划分 DBSCAN算法 居于密度的划分 基于划分聚类和基于层次聚类的方法在聚类过程中根据距离来划分类簇,因此只能够用于挖掘球状簇。 为了解决这一缺陷,基于密度聚类算法利用密度思想,将样本中的高密度区域(即样本点分布稠密的…

图的概念(1)

图是什么? 首先,我们导入需要的包? import numpy as np import random import networkx as nx from IPython.display import Image import matplotlib.pyplot as plt 图的定义? 图表示物件与物件之间关系的数学对象,…

Metasploit入门用法

靶机介绍 Difficult: As always, it’s a very easy box for beginners. Goal: Get flag Download:https://www.vulnhub.com/entry/funbox-scriptkiddie,725/ 解题过程: 1.使用nmap进行端口扫描:Nmap -sV IP 2.使用search命令查…

yolov5加入分割头,多任务头

Yolov5同时进行目标检测和分割分割_MidasKing的博客-CSDN博客_yolov5分割 用YOLOv5ds训练自己的数据集,注意点!_用猪头过日子.的博客-CSDN博客 基于pytorch用yolov5算法实现目标检测与分割_无损检测小白白的博客-CSDN博客 原理 代码:

一种三自由度机器人的设计(CAD+Solidworks+文档)

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1课题研究背景及其意义 1 1.2三自由度机器人的发展与现状 1 1.3三自由度机器人的原理和介绍 3 1.4三自由度机器人目前存在问题 4 1.5三自由度机器人的力控制问题 4 1.6三自由度机器人的发展趋势 5 第2章 总体技术方案及系统组成 7 2.…

[附源码]SSM计算机毕业设计电子病历信息管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

AVL的单旋和双旋—附图超详细

文章目录前言:AVL 的插入寻找插入位置更新平衡因子调整AVL右旋左旋左右双旋右左双旋完整代码前言: 我们知道二叉排序树的搜索效率很高,能达到(logn)的时间复杂度,但是当元素有序导致二叉搜索树变成了一个长条(图左&am…

游戏优化之空间划分

使用的动机 定义:将对象根据它们的位置存储在数据结构中,来高效地定位对象。 在游戏中,AI向最近的敌人攻击是很常见的,但如果有很多单位的话,他们AI需要频繁的查找单位,然后在检测是不是距离最近的单位&a…

Git工具使用全解

Git工具使用全解 文章目录Git工具使用全解1.企业开发中的版本控制器2.Git工具的使用场景3.Git工具操作流程(三板斧操作)4.Git工具的安装与常用命令4.1 Git的安装4.2 Git基本操作指令5.Git工具常见问题解决5.1 常见问题:分支冲突解决办法5.2 常见问题:合并…

Linux | 动静态库 | 动静态链接 | makefile库打包 | 第三方库使用

文章目录何为动静态库库文件的链接静态链接静态库打包动态链接动态库打包第三方库的使用静态库的使用动态库的使用在系统层面上的动态链接理解何为动静态库 静态库(.a):在程序编译链接时将静态库二进制码拷贝到程序代码中,程序运行时不再需要外部的静态库…

面试:类相关---Java、Android有哪些类加载器

Android类加载器与Java类加载器的对比 - 掘金 Android | 类加载器与插件化 - 简书 相关复习: 面试:热修复原理_沙漠一只雕得儿得儿的博客-CSDN博客_android 热修复原理面试 面试:类的初始化过程_沙漠一只雕得儿得儿的博客-CSDN博客 什么…

内置 230+ 工具,它值得被官方纳入标准库

经过了几十年的发展,Python 的轮子生态越来越丰富,例如针对网络请求有 requests,针对命令行开发有 typer 等等,这些第三方库给我们的日常开发带来了极大的便利。 今天我推荐另一个第三方库 – Boltons,和大多数第三方…

go语言之不必要的拷贝

其实我也是个golang开发者~~ Go语言本来就以轻量快速著称,一位GitHub员工却偶然发现: 只改变一个字符的位置,能把一段代码运行速度提高足足42%。 简直就像是…… 这个简单有效的技巧一经发布,就引来众多程序员围观。 原作者自己…

论文中常见的拟合散点验证图(R语言版)

论文中常见的拟合散点验证图(R语言版) 如上图所示,是论文中常见的validation图,python也能实现相似的图绘。 今天先介绍R语言版,python改期再介绍吧 这张图需要依次实现下列功能: data实测与data模拟的散…

RabbitMQ系列【11】延迟队列

有道无术,术尚可求,有术无道,止于术。 文章目录前言1. 过期消息实现延迟队列2. 过期队列实现延迟队列3. 插件实现延迟队列3.1 安装插件3.2 代码实现3.3 测试前言 延迟队列:即消息进入队列后不会立即被消费,只有到达指…

MySQL事务隔离机制 -- 必须说透

文章目录前言一、什么是数据库事务二、事务并发带来的4类问题三、事务4种隔离级别四、Mysql演示4种隔离级别总结前言 如何控制并发是数据库领域中非常重要的问题之一,MySQL为了解决并发带来的问题,设计了事务隔离机制、锁机制、MVCC机制,用一…

c# 实验七 图像列表框及树形视图控件的使用

前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:个人主页1 || 笑霸final的主页2 📕系列专栏:《项目专栏》 📧如果文章知识点有错误的地方&#xf…

[附源码]java毕业设计四六级考试管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…