【matlab】LSTM/GRU网络回归/分类预测改进与优化合集(持续更新)_lstm调参matlab-程序员宅基地

技术标签: LSTM神经网络改进及优化  matlab  lstm  分类算法  gru  回归  

目录

一、进化算法-LSTM

概述:
1.原理:通过进化算法寻找LSTM网络最优超参数。
2.本文测试数据为12输入单输出,解决回归问题。
3.评价指标:测试集实际值与预测值对比,目标函数为rmse,另外附MAE、MAPE、R2计算值
4.优化LSTM三个参数,即隐含层神经元数,学习率,训练次数
5.本代码进化算法为测试参数,为了提高运算速度,迭代次数为3,种群数量为5,可自行修改

1.金枪鱼算法TSO-LSTM

%TSO_LSTM
clear all;
close all;
clc;
Particles_no = 10; % 种群数量 50
Function_name=‘LSTM_MIN’;
Max_iter = 3; % 迭代次数 10
Low = [10 0.001 10 ];%三个参数的下限
Up = [200 0.02 200 ];%三个参数的上限
Dim = 3;%待优化参数数量
fobj = @(x)LSTM_MIN(x);
train_x=input(:,1:n);
train_y=output(:,1:n);
test_x=input(:,n+1:end);
test_y=output(:,n+1:end);
method=@mapminmax;
% method=@mapstd;
[train_x,train_ps]=method(train_x);
test_x=method(‘apply’,test_x,train_ps);
[train_y,output_ps]=method(train_y);
test_y=method(‘apply’,test_y,output_ps);
XTrain = double(train_x) ;
XTest = double(test_x) ;
YTrain = double(train_y);
YTest = double(test_y);
numFeatures = size(XTrain,1); %输入特征维数
numResponses = size(YTrain,1);%输出特征维数
layers = [ …
sequenceInputLayer(numFeatures)%输入层,参数是输入特征维数
lstmLayer(Tuna1(1,1))%lstm层,如果想要构建多层lstm,改几个参数就行了
fullyConnectedLayer(numResponses)%全连接层,也就是输出的维数
regressionLayer];%该参数说明是在进行回归问题,而不是分类问题
options = trainingOptions(‘adam’, …%求解器设置为’adam’
‘MaxEpochs’,Tuna1(1,3), …%这个参数是最大迭代次数,即进行200次训练,每次训练后更新神经网络参数
‘MiniBatchSize’,16, …%用于每次训练迭代的最小批次的大小。
‘InitialLearnRate’,Tuna1(1,2), …%学习率
‘GradientThreshold’,1, …%设置梯度阀值为1 ,防止梯度爆炸
‘Verbose’,false, …%如果将其设置为true,则有关训练进度的信息将被打印到命令窗口中。
‘Plots’,‘training-progress’);%构建曲线图
%对每个时间步进行预测,对于每次预测,使用前一时间步的观测值预测下一个时间步。
net = trainNetwork(XTrain,YTrain,layers,options);
numTimeStepsTest = size(XTest,2);
for i = 1:numTimeStepsTest
[net,YPred(:,i)] = predictAndUpdateState(net,XTest(:,i),‘ExecutionEnvironment’,‘cpu’);
end
% 结果
% 反归一化
predict_value=method(‘reverse’,YPred,output_ps);
predict_value=double(predict_value);
true_value=method(‘reverse’,YTest,output_ps);
true_value=double(true_value);
for i=1
figure
plot(true_value(i,:),‘-‘,‘linewidth’,2)
hold on
plot(predict_value(i,:),’-s’,‘linewidth’,2)
legend(‘实际值’,‘预测值’)
grid on
title(‘TSO-LSTM预测结果’)
ylim([-500 500])
rmse=sqrt(mean((true_value(i,:)-predict_value(i,:)).^2));
disp([‘-----------’,num2str(i),‘------------’])
disp([‘均方根误差(RMSE):’,num2str(rmse)])
mae=mean(abs(true_value(i,:)-predict_value(i,:)));
disp([‘平均绝对误差(MAE):’,num2str(mae)])
mape=mean(abs((true_value(i,:)-predict_value(i,:))./true_value(i,:)));
disp([‘平均相对百分误差(MAPE):’,num2str(mape
100),’%'])
r2=R2(true_value(i,:),predict_value(i,:));
disp([‘R-square决定系数(R2):’,num2str(r2)])
end
在这里插入图片描述
在这里插入图片描述
实际效果以自己的数据为准,本文测试结果并不代表算法最终效果。不同数据,数据处理方式,待优化参数等均不同。

2.孔雀优化算法(POA)-LSTM

与上文同数据、同进化算法设置参数。效果仅供参考
在这里插入图片描述

3.猎人优化算法(HPO)-LSTM

1.2021年Iraj Naruei等人提出的猎人优化算法,Hunter–prey optimization, 与LSTM网络结合,优化LSTM超参数。
2.该算法的灵感来自狮子、豹子和狼等捕食性动物以及雄鹿和瞪羚等猎物的行为。动物狩猎行为的场景有很多,其中一些已经转化为优化算法。本文使用的场景与之前算法的场景不同。在提议的方法中,猎物和捕食者种群以及捕食者攻击远离猎物种群的猎物。猎人向着这个远处的猎物调整自己的位置,而猎物则向着安全的地方调整自己的位置。作为适应度函数最佳值的搜索代理的位置被认为是安全的位置。在几个测试函数上实现的 HPO 算法以评估其性能。此外,对于性能验证,所提出的算法被应用于几个工程问题。结果表明,所提出的算法在解决测试功能和工程问题方面表现良好。
3.本文为测试数据,12输入,单输出,回归问题。与上文同数据、同进化算法设置参数。效果仅供参考

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

4.人工大猩猩部队优化算法(GTO)-LSTM

本文为测试数据,12输入,单输出,回归问题。与上文同数据、同进化算法设置参数。效果仅供参考
在这里插入图片描述
在这里插入图片描述

二、进化算法(改进)-LSTM

1.混沌映射Tent

2.收敛因子

3.多算法组合

4.基于levy飞行

本文将Levy飞行应用于鲸鱼的位置更新中,在算法进行更新后再进行一次Levy飞行更新个体位置,可以实现跳出局部最优解,扩大搜索能力的效果。位置更新的方式为:
X(t+1)=X(t)+α⊕Levy(λ)
其中,α \alphaα为步长缩放因子,本文取值为1;
Levy飞行的具体机制:
“莱维Levy飞行”以法国数学家保罗·莱维命名,指的是步长的概率分布为重尾分布的随机行走,也就是说在随机行走的过程中有相对较高的概率出现大跨步。莱维飞行的名称来源于本华·曼德博(Benoît Mandelbrot,莱维的学生)。他用“柯西飞行”来指代步长分布是柯西分布的随机行走,用“瑞利飞行”指代步长分布是正态分布(尽管正态分布没有重尾)的随机行走(瑞利分布是二维独立同方差正态变量模长的分布)。后来学者还进一步将莱维飞行的概念从连续空间推广到分立格点上的随机运动。

三、LSTM-CNN(提取特征)

1.LSTM-CNN

2.QR(分位数回归)-LSTM-CNN

3.Attention-QR-LSTM-CNN

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_29736627/article/details/121863379

智能推荐

Qt知识点总结_qt知识分享-程序员宅基地

文章浏览阅读1.9k次,点赞5次,收藏37次。QT提供了一些机制来保证线程安全,如互斥量(QMutex)、信号量(QSemaphore)和读写锁(QReadWriteLock)。这些机制可以在多线程环境下实现数据的同步访问和线程间的协调。_qt知识分享

spark原理简介_spark技术原理-程序员宅基地

文章浏览阅读773次。spark简介以及原理spark简介 spark是基于内存的分布式处理框架,它把要执行的作业拆分成多个任务,然后将任务分发到多个CPU进行处理,处理结果的中间数据存储在内存中,减少了数据处理过程中对硬盘的I/O操作,大大提升了处理效率。spark和MapReduce对比 spark相对于mr,性能上提高了100倍。 &_spark技术原理

大数据Hadoop入门_hadoop只用一个账户能启动-程序员宅基地

文章浏览阅读4.6k次,点赞4次,收藏34次。先安装好vmware并且创建一台虚拟机,IP和主机名配置1.点击vmware的“编辑” =>虚拟网络编辑器(N)...2.点击“VMnet8"后点击”更改设置“3.而后再次点击VMnet8,修改子网IP地址为:192.168.10.0(IP可以任意取值只要不为192.168.1.0即可)4.修改完成后,点击NAT设置,将网关的地址修改与子网IP在同一网段。这里网关IP设置为192.168.10.2 ;随后点击确定=>确定5.配置主机的IP,网..._hadoop只用一个账户能启动

LM series vertical grinding mill complete system of professional choice-程序员宅基地

文章浏览阅读82次。LM series verticalroller mill machine is widely absorb the advanced technology in thefoundation of internat..._lm coal mill

概念理解:面向对象编程(OOP)-程序员宅基地

文章浏览阅读49次。一、对象的综述面向对象编程(OOP)具有多方面的吸引力。对管理人员,它实现了更快和更廉价的开发与维护过程。对分析与设计人员,建模处理变得更加简单,能生成清晰、易于维护的设计方案。对程序员,对象模型显得如此高雅和浅显。此外,面向对象工具以及库的巨大威力使编程成为一项更使人愉悦的任务。每个人都可从中获益,至少表面如此。所有编程语言的最终目的都是解决企业又或者人在现实生活中所遇到的问题,最初我们..._咋样理解面向对象编程 -baijiahao

C语言之makefile简介及简单应用_c makefile-程序员宅基地

文章浏览阅读963次。其实makefile最大的优点就是提供了”自动编译”,只要内容编写好,一个make命令,整个工程就会自动编译程序,大大提高了软件开发的效率。 所以 会使用makfile还是一个很重要的技能哦!!!make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生..._c makefile

随便推点

spring-搭建web项目_spring搭建web项目-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏6次。spring-搭建web项目1.创建maven,web项目2.加入依赖3.拷贝ch07-spring-mybatis中的代码和配置文件4.创建一个jsp发起请求,有参数id,name,email,age。5.创建Servlet,接收请求参数,调用Service,调用dao完成注册6.创建一个jsp作为显示结果的页面1.之前做的是javase项目有main方法的,执行代码是执行main方法的,在main里面创建的容器对象。ApplicationContext ctx = new ClassPathXml_spring搭建web项目

ROS安装过程sudo rosdep init+rosdep update出现错误:'The read operation timed out'_error: no data sources in /etc/ros/rosdep/sources.-程序员宅基地

文章浏览阅读3.6w次,点赞11次,收藏43次。1.问题描述:***@***:~$ rosdepupdatereadingin sources list data from /etc/ros/rosdep/sources.list.dERROR:unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebre..._error: no data sources in /etc/ros/rosdep/sources.list.d

ls路由算法_计算机网络之链路状态路由选择算法(LS)-程序员宅基地

文章浏览阅读2.8k次。一、准备知识链路状态路路由选择算法是一种全局式路由选择算法。在此算法中,我们是假设所有网络拓扑和链路费用都是已知的(实践中通常是通过让每个结点向网络中所有其他节点广播链路状态分组来完成的)【OSPF协议】,通过节点广播使所有结点具备了该网络等同的完整视图。获得视图之后,通过LS算法可以计算出从源节点到网络任意结点的最低费用路径。.我们下面给出的链路状态路由选择算法叫做Dijkstra算法,在了解此..._ls路由

个人永久性免费-Excel催化剂功能第59波-快速调用Windows内部常用工具命令-程序员宅基地

文章浏览阅读60次。Windows里一些常用的工具、命令,许多存放得很深的位置,不容易找到,每次还要百度半天才能调用成功,Excel催化剂现将常用的操作,提取至插件中完成,一键即可调出相应功能,无需苦苦找寻。使用场景每每需要对Windows系统作一些设置时,不同的Windows版本设置菜单位置不一样,特别是现在的Win10坑爹地很,更难找到,用熟一个系统,跳到其他系统又找一大轮,微软这德性还..._excel 调用windows命令

leetcode 509.斐波那契数 C语言 动态规划_动态规划求解斐波那契数列c语言-程序员宅基地

文章浏览阅读1.2k次。题目读题从第三项开始,每一项是前两项的和,给定数n,求F(n)。列出前五项 F(0) F(1) F(2) F(3) F(4) F(n) 0 1 1 2 3 F(n-1)+F(n-2) 1+0 1+1 2+1 运用动态规划设计状态:从第三项开始每一次求第n项都转移到求n-1项和n-2项写出状态转移方程:F(n)=F(n-1)+F(n-2_动态规划求解斐波那契数列c语言

Windows下安装Hive(包安装成功)_windows安装hive-程序员宅基地

文章浏览阅读5.1k次,点赞12次,收藏28次。Hive 的Hive_x.x.x_bin.tar.gz 高版本在windows 环境中缺少 Hive的执行文件和运行程序。配置文件目录(%HIVE_HOME%\conf)有4个默认的配置文件模板拷贝成新的文件名。可以发现,自动连接MySQL去创建schema hive,并执行脚本。可以通过访问namenode和HDFS的Web UI界面(以及resourcemanager的页面(先在Hive安装目录下建立。根据自己的Hive安装路径(根据自己的Hive安装路径(请严格按照版本来安装。在Hadoop管理台(_windows安装hive