【预测模型-DELM分类】基于风驱动算法改进深度学习极限学习机实现数据分类附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机

⛄ 内容介绍

人工时间的最大缺点是训练太长,因为它在应用神经网络的时间范围内,持续不断地限制神经网络,最大限度地限制学习机(Extreme Learning Machine)大量的噪声噪声,或者当输入数据时的维度算法非常高时,极限学习时的综合性能会受到极大的影响。进行空间映射时的有效对数据维的维度的预测,因此我们认为利用深度学习的预测精度来最大学习机的特性,可以很好地改善极限学习机的特性。本文采用风驱动算法的进一步优化DELM超参数,仿真结果改进,预测精度更高。

⛄ 部分代码

%-------------------------------------------------------------------------

tic;  

clear;  

close all;  

clc;  

format long g;

delete('WDOoutput.txt');  

delete('WDOpressure.txt');  

delete('WDOposition.txt');

fid=fopen('WDOoutput.txt','a');

%--------------------------------------------------------------

% User defined WDO parameters:

param.popsize = 20; % population size.

param.npar = 5; % Dimension of the problem.

param.maxit = 500; % Maximum number of iterations.

param.RT = 3; % RT coefficient.

param.g = 0.2; % gravitational constant.

param.alp = 0.4; % constants in the update eq.

param.c = 0.4; % coriolis effect.

maxV = 0.3; % maximum allowed speed.

dimMin =  -5; % Lower dimension boundary.

dimMax= 5; % Upper dimension boundary.

%---------------------------------------------------------------

% Initialize WDO population, position and velocity:

% Randomize population in the range of [-1, 1]:

pos = 2*(rand(param.popsize,param.npar)-0.5);

% Randomize velocity:

vel = maxV * 2 * (rand(param.popsize,param.npar)-0.5);  

%---------------------------------------------------------------

% Evaluate initial population: (Sphere Function)

for K=1:param.popsize,

x = (dimMax - dimMin) * ((pos(K,:)+1)./2) + dimMin;

     pres(K,:) = sum (x.^2);

end

%----------------------------------------------------------------

% Finding best air parcel in the initial population :

[globalpres,indx] = min(pres);

globalpos = pos(indx,:);

minpres(1) = min(pres); % minimum pressure

%-----------------------------------------------------------------

% Rank the air parcels:

[sorted_pres rank_ind] = sort(pres);

% Sort the air parcels:

pos = pos(rank_ind,:);

keepglob(1) = globalpres;

%-----------------------------------------------------------------

% Start iterations :

iter = 1;   % iteration counter

for ij = 2:param.maxit,

     % Update the velocity:

     for i=1:param.popsize

% choose random dimensions:

a = randperm(param.npar);        

% choose velocity based on random dimension:

     velot(i,:) = vel(i,a);

         vel(i,:) = (1-param.alp)*vel(i,:)-(param.g*pos(i,:))+ ...

    abs(1-1/i)*((globalpos-pos(i,:)).*param.RT)+ ...

    (param.c*velot(i,:)/i);

     end

    

         % Check velocity:

         vel = min(vel, maxV);

         vel = max(vel, -maxV);

% Update air parcel positions:

     pos = pos + vel;

         pos = min(pos, 1.0);

         pos = max(pos, -1.0); 

% Evaluate population: (Pressure)

for K=1:param.popsize,

x = (dimMax - dimMin) * ((pos(K,:)+1)./2) + dimMin;

     pres(K,:) = sum (x.^2);

end

     %----------------------------------------------------

     % Finding best particle in population

     [minpres,indx] = min(pres);

     minpos = pos(indx,:);            % min location for this iteration

     %----------------------------------------------------

     % Rank the air parcels:

     [sorted_pres rank_ind] = sort(pres);

     % Sort the air parcels position, velocity and pressure:

     pos = pos(rank_ind,:);

     vel = vel(rank_ind,:);

     pres = sorted_pres;  

    

     % Updating the global best:

     better = minpres < globalpres;

     if better

         globalpres = minpres             % initialize global minimum

         globalpos = minpos;

    end

% Keep a record of the progress:

     keepglob(ij) = globalpres;

     save WDOposition.txt pos -ascii -tabs;

end

%Save values to the final file.

     pressure = transpose(keepglob);

     save WDOpressure.txt pressure -ascii -tabs;

        

        % Plot the pressure function progress over iterations:

        semilogy(keepglob, 'k' ,'LineWidth',2)

        title(['Global Best Pressure is " ',num2str(keepglob(1,param.maxit)),' ".'])

        xlabel('Number of Iterations')

        ylabel('Global Pressure (i.e. fitness) in log scale')

        grid on

        xlim([0, param.maxit])

        

        

     %END

%-----------------------------------------------------

⛄ 运行结果

⛄ 参考文献

[1]吴丁杰, 温立书. 一种基于哈里斯鹰算法优化的核极限学习机[J]. 信息通信, 2021(034-011).

[2]马萌萌. 基于深度学习的极限学习机算法研究[D]. 中国海洋大学, 2016.​

❤️ 关注我领取海量matlab电子书和数学建模资料

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值