【DELM分类】基于matlab麻雀搜索算法改进深度学习极限学习机数据分类【含Matlab源码 2235期】

⛄一、麻雀搜索算法改进深度学习极限学习机数据分类

1 深度极限学习机
深度极限学习机算法(Deep Extreme Learning Machine, DELM)又称多层极限学习机.存在N个训练样本,其中
在这里插入图片描述
在这里插入图片描述2 麻雀搜索算法(SSA)
2020年,薛建凯等人提出了麻雀搜索算法.麻雀搜索算法是一种发现者-跟随者-警戒者模型,每个个体的位置对应一个解.

发现者位置更新公式如下:
在这里插入图片描述

⛄二、部分源代码

clear;clc;close all;
%% 导入数据
load data.mat
% 产生训练集/测试集
% a = randperm(569);
a = 1:569;
Train = data(a(1:500);
Test = data(a(501:end);
% 训练数据
P_train = Train(:,3:end);
T_train = Train(:,2);
% 测试数据
P_test = Test(:,3:end);
T_test = Test(:,2);
%所有的数据输入类型应该为 N*dim,其中N为数据组数,dim为数据的维度
%% DELM参数设置
ELMAEhiddenLayer = [32];%ELM—AE的隐藏层数,[n1,n2,…,n],n1代表第1个隐藏层的节点数。
ActivF = ‘sig’;%ELM-AE的激活函数设置
C = inf; %正则化系数
%% 优化算法参数设置:
%计算权值的维度
dim = ELMAEhiddenLayer(1)*size(P_train,2);
if length(ELMAEhiddenLayer)>1
for i = 2:length(ELMAEhiddenLayer)
dim = dim + ELMAEhiddenLayer(i)*ELMAEhiddenLayer(i-1);
end
end
popsize = 20;%种群数量
Max_iteration = 50;%最大迭代次数
lb = -1;%权值下边界
ub = 1;%权值上边界
fobj = @(X)fun(X,P_train,T_train,P_test,T_test,ELMAEhiddenLayer,ActivF,C);
[Best_score,Best_pos,SSA_cg_curve]=SSA(popsize,Max_iteration,lb,ub,dim,fobj);
figure
plot(SSA_cg_curve,‘linewidth’,1.5)
xlabel(‘迭代次数’)
ylabel(‘适应度值’)
grid on
title(‘麻雀搜索算法收敛曲线’)
%% 利用麻雀搜索获得的初始权重,进行训练
BestWeitht = Best_pos;
%DELM训练
OutWeightSSA = DELMTrainWithInitial(BestWeitht,P_train,T_train,ELMAEhiddenLayer,ActivF,C);
%训练集测试结果
predictValueTrainSSA = DELMPredict(P_train,OutWeightSSA,ELMAEhiddenLayer);
% 分类正确率
AccuracyTrainSSA = length(find(predictValueTrainSSA’ == T_train))*100/length(T_train);

%测试集测试结果
predictValueTestSSA = DELMPredict(P_test,OutWeightSSA,ELMAEhiddenLayer);
AccuracyTestSSA = length(find(predictValueTestSSA’ == T_test))*100/length(T_test);

⛄三、运行结果

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

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]杨云,王勇.基于麻雀搜索优化深度极限学习机的入侵检测方法[J].微电子学与计算机. 2022,39(06)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

你可能感兴趣的:(matlab,分类,深度学习)