首页 > 行业资讯 > 【DELM预测】基于麻雀搜索算法改进深度学习极限学习机实现数据预测附matlab代码

【DELM预测】基于麻雀搜索算法改进深度学习极限学习机实现数据预测附matlab代码

时间:2023-01-09 来源: 浏览:

【DELM预测】基于麻雀搜索算法改进深度学习极限学习机实现数据预测附matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #神经网络预测matlab源码 433个

1 简介

人工神经网络的最大缺点是训练时间太长从而限制其实时应用范围,近年来,极限学习机(Extreme Learning Machine, ELM)的提出使得前馈神经网络的训练时间大大缩短,然而当原始数据混杂入大量噪声变量时,或者当输入数据维度非常高时,极限学习机算法的综合性能会受到很大的影响.深度学习算法的核心是特征映射,它能够摒除原始数据中的噪声,并且当向低维度空间进行映射时,能够很好的起到对数据降维的作用,因此我们思考利用深度学习的优势特性来弥补极限学习机的弱势特性从而改善极限学习机的性能.为了进一步提升DELM预测精度,本文采用麻雀搜索算法进一步优化DELM超参数,仿真结果表明,改进算法的预测精度更高。

2 部分代码

function [FoodFitness,FoodPosition,Convergence _curve]=SSA(N,Max_ iter,lb,ub,dim,fobj) if size(ub,1)==1 ub=ones(dim,1)*ub; lb=ones(dim,1)*lb; end Convergence _curve = zeros(1,Max_ iter); %Initialize the positions of salps SalpPositions=initialization(N,dim,ub,lb); FoodPosition=zeros(1,dim); FoodFitness=inf; %calculate the fitness of initial salps for i=1:size(SalpPositions,1) SalpFitness(1,i)=fobj(SalpPositions(i,:)); end [sorted _salps_ fitness,sorted_indexes]=sort(SalpFitness); for newindex=1:N Sorted_salps(newindex,:)=SalpPositions(sorted_indexes(newindex),:); end FoodPosition=Sorted_salps(1,:); FoodFitness=sorted _salps_ fitness(1); %Main loop l=2; % start from the second iteration since the first iteration was dedicated to calculating the fitness of salps while l < Max_iter+1 c1 = 2*exp(-(4*l/Max_iter)^2); % Eq. ( 3.2 ) in the paper for i = 1:size(SalpPositions,1) SalpPositions = SalpPositions ’; if i <= N/2 for j = 1:1:dim c2 = rand(); c3 = rand(); %%%%%%%%%%%%% % Eq. ( 3.1 ) in the paper %%%%%%%%%%%%%% if c3 < 0.5 SalpPositions ( j , i )= FoodPosition(j)+c1*((ub(j)-lb(j))*c2+lb(j)); else SalpPositions ( j , i )= FoodPosition(j)-c1*((ub(j)-lb(j))*c2+lb(j)); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% end elseif i > N/2 && i < N+1 point1 = SalpPositions(:,i-1); point2 = SalpPositions(:,i); SalpPositions ( : , i )= (point2+point1)/2; % % Eq. ( 3.4 ) in the paper end SalpPositions = SalpPositions ’; end for i = 1:size(SalpPositions,1) Tp = SalpPositions(i,:) > ub’;Tm=SalpPositions(i,:) < lb’;SalpPositions(i,:)=(SalpPositions(i,:).*(~(Tp+Tm)))+ub’.*Tp+lb’.*Tm; SalpFitness ( 1 , i )= fobj(SalpPositions(i,:)); if SalpFitness ( 1 , i )< FoodFitness FoodPosition = SalpPositions(i,:); FoodFitness = SalpFitness(1,i); end end Convergence_curve ( l )= FoodFitness; l = l + 1 ; end

3 仿真结果

4 参考文献

[1]马飞燕, 李向新. 基于改进麻雀搜索算法-核极限学习机耦合算法的滑坡位移预测模型[J]. 科学技术与工程, 2022, 22(5):8.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐