资源简介
PSO-ELM粒子群优化的极限学习机,通过调节参数拟合效果很好,便于大家使用,为学者和科研人员提供基础和思路
代码片段和文件信息
clc
clear all
%% 加载数据
load matlab3.mat
AllSamIn = data_train‘;
AllSamOut =lab_train‘;
AllTestIn=data_test‘;
AllTestOut=lab_test‘;
%% 训练样本归一化
global minAllSamOut;
global maxAllSamOut;
[AllSamInnminAllSamInmaxAllSamInAllSamOutnminAllSamOutmaxAllSamOut] = premnmx(AllSamInAllSamOut);
TrainSamIn=AllSamInn;
TrainSamOut=AllSamOutn;
global Ptrain;
Ptrain = TrainSamIn;
global Ttrain;
Ttrain = TrainSamOut;
%% 测试样本归一化
global minAllTestOut;
global maxAllTestOut;
[AllTestInnminAllTestInmaxAllTestInAllTestOutnminAllTestOutmaxAllTestOut] = premnmx(AllTestInAllTestOut);
TestIn=AllTestInn;
TestOut=AllTestOutn;
global Ptest;
Ptest = TestIn;
global Ttest;
Ttest = TestOut;
%% 加载网络的初始变量
global indim;
indim=6;
global hiddennum;
hiddennum=8;
global outdim;
outdim=1;
%% 加载PSO模型的相关参数
vmax=1;
minerr=0.001;
wmax=0.80;
wmin=0.40;
global itmax;
itmax=100;
c1=2.8;
c2=1.3;
for iter=1:itmax
W(iter)=wmax-((wmax-wmin)/itmax)*iter;
end
a=-1;
b=1;
m=-1;
n=1;
global N;
N=100;
global D;
D=(indim+1)*hiddennum+(hiddennum+1)*outdim;
rand(‘state‘sum(100*clock));
X=a+(b-a)*rand(ND1);
V=m+(n-m)*rand(ND1);
global fvrec;
MinFit=[];
BestFit=[];
%% PSO优化ELM模型 过程 1
fitness=fitcal(XindimhiddennumoutdimDPtrainTtrainminAllSamOutmaxAllSamOut);
fvrec(:11)=fitness(:11);
[CI]=min(fitness(:11));
MinFit=[MinFit C];
BestFit=[BestFit C];
L(:11)=fitness(:11);
B(111)=C;
gbest(1:1)=X(I:1);
for p=1:N
G(p:1)=gbest(1:1);
end
for i=1:N;
pbest(i:1)=X(i:1);
end
V(::2)=W(1)*V(::1)+c1*rand*(pbest(::1)-X(::1))+c2*rand*(G(::1)-X(::1));
for ni=1:N
for di=1:D
if V(nidi2) > vmax
V(nidi2) = vmax;
elseif V(nidi2) < -vmax
V(nidi2) = -vmax;
else
V(nidi2) = V(nidi2);
end
end
end
X(::2)=X(::1)+V(::2);
for ni=1:N
for di=1:D
if X(nidi2) > 1
X(nidi2) = 1;
elseif V(nidi2) < -1
X(nidi2) = -1;
else
X(nidi2) = X(nidi2);
end
end
end
%% PSO优化ELM模型 过程 2
for j=2:itmax
disp(‘Iteration and Current Best Fitness‘)
disp(j-1)
disp(B(11j-1))
fitness=fitcal(XindimhiddennumoutdimDPtrainTtrainminAllSamOutmaxAllSamOut);
fvrec(:1j)=fitness(:1j);
[CI]=min(fitness(:1j));
MinFit=[MinFit C];
BestFit=[BestFit min(MinFit)];
L(:1j)=fitness(:1j);
B(11j)=C;
gbest(1:j)=X(I:j);
[CI]=min(B(11:));
if B(11j)<=C
gbest(1:j)=gbest(1:j);
else
gbest(1:j)=gbest(1:I);
end
if C<=minerr break end
if j>=itmax break end
for p=1:N
G(p:j)=gbest(1:j);
end
for i=1:N;
[CI]=min(L(i1:));
if L(i1j)<=C
pbest(i:j)=X(i:j);
else
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7694 2017-09-14 14:05 PSO_ELM\Adaboost_PSO_ELM.m
文件 179 2016-05-15 10:52 PSO_ELM\ELMfun.m
文件 223 2016-05-15 10:52 PSO_ELM\ELMfun2.m
文件 232 2016-05-15 10:52 PSO_ELM\ELMfun3.m
文件 1376 2016-05-15 10:51 PSO_ELM\elmpredict.m
文件 1830 2016-05-15 10:51 PSO_ELM\elmtrain.m
文件 1766 2016-05-15 10:50 PSO_ELM\elmtrain2.m
文件 600 2016-05-15 10:50 PSO_ELM\fitcal.m
文件 26680 2017-09-15 20:34 PSO_ELM\gaopin.xlsx
文件 6328 2017-09-15 21:01 PSO_ELM\PSO_ELM.asv
文件 6328 2017-09-15 21:05 PSO_ELM\PSO_ELM.m
- 上一篇:粒子群算法MATLAB仿真
- 下一篇:两电平双闭环PWM整流器
评论
共有 条评论