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

+关注继续查看

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

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

🍊个人信条：格物致知。

## ⛄ 部分代码

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

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.

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

|
4天前
|

Matlab 基于PSO-LSTM-Attention做多特征输入单输出的预测模型
Matlab 基于PSO-LSTM-Attention做多特征输入单输出的预测模型
9 0
|
12天前
|

【lssvm回归预测】基于变模态结合秃鹰算法优化最小二乘支持向量机VMD-BES-LSSVM实现数据预测模型（多输入单输出）含Matlab代码
【lssvm回归预测】基于变模态结合秃鹰算法优化最小二乘支持向量机VMD-BES-LSSVM实现数据预测模型（多输入单输出）含Matlab代码
16 0
|
1月前
|

28 0
|
1月前
|

【光伏功率预测】基于EMD-PCA-LSTM的光伏功率预测模型（Matlab代码实现）
【光伏功率预测】基于EMD-PCA-LSTM的光伏功率预测模型（Matlab代码实现）
34 0
|
2月前
|

SCN时间序列预测模型详解（Matlab代码实现）
SCN时间序列预测模型详解（Matlab代码实现）
32 0
|
2月前
|

28 0
|
2月前
|

27 0
|
2月前
|

【MATLAB第58期】基于MATLAB的PCA-Kmeans、PCA-LVQ与BP神经网络分类预测模型对比
【MATLAB第58期】基于MATLAB的PCA-Kmeans、PCA-LVQ与BP神经网络分类预测模型对比
44 0
|
2月前
|

【MATLAB第57期】基于MATLAB的双隐含层BP神经网络回归预测模型（无工具箱版本及工具箱版本对比）

31 0
|
2月前
|

【MATLAB第56期】#源码分享 | 基于MATLAB的机器学习算法单输入多输出分类预测模型思路（回归改分类）

47 0