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

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

🍊个人信条:格物致知。

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

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

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

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

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

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

⛄ 部分代码

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

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,:))+ ...

  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

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

⛄ 运行结果

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

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

⛄ 参考文献

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

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

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除