資源簡介
遺傳算法優(yōu)化的ELM matlab源碼 (親測親寫)

代碼片段和文件信息
clc
%%?不使用遺傳算法
%?訓(xùn)練集
[PtraininFP]?=?mapminmax(P);
Ptest?=?mapminmax(‘a(chǎn)pply‘P_testinFP);
%?測試集
[TtrainoutFP]?=?mapminmax(T);
Ttest?=?mapminmax(‘a(chǎn)pply‘T_testoutFP);
%%?ELM?訓(xùn)練
%?創(chuàng)建ELM網(wǎng)絡(luò)
[IWBLWTFTYPE]?=?elmtrain2(PtrainTtrain30‘sig‘0);
%%?測試網(wǎng)絡(luò)
disp([‘1、使用隨機(jī)權(quán)值和閾值?‘])
disp(‘測試樣本預(yù)測結(jié)果:‘)
%?ELM仿真測試
T_test_sim1?=?elmpredict(PtestIWBLWTFTYPE);
T_train_sim1?=?elmpredict(PIWBLWTFTYPE);
%?反歸一化
Y11?=?mapminmax(‘reverse‘T_test_sim1outFP);
%?Y12?=?mapminmax(‘reverse‘T_train_sim1outFP);
err1=norm(Y11-T_test);?????%測試樣本的仿真誤差
%?err11=norm(Y12-T);?%訓(xùn)練樣本的仿真誤差
disp([‘測試樣本的仿真誤差:‘num2str(err1)])
%?disp([‘訓(xùn)練樣本的仿真誤差:‘num2str(err11)])
%%?使用遺傳算法
%%?使用優(yōu)化后的權(quán)值和閾值
nputnum=size(P1);???????%?輸入層神經(jīng)元個(gè)數(shù)?
outputnum=size(T1);??????%?輸出層神經(jīng)元個(gè)數(shù)
%?訓(xùn)練集歸一化
[PtraininFP]?=?mapminmax(P);
Ptest?=?mapminmax(‘a(chǎn)pply‘P_testinFP);
%?測試集歸一化
[TtrainoutFP]?=?mapminmax(T);
Ttest?=?mapminmax(‘a(chǎn)pply‘T_testoutFP);
%%?elm初始權(quán)值和閾值
w1num=inputnum*hiddennum;?%?輸入層到隱層的權(quán)值個(gè)數(shù)
w1=bestX(1:w1num);???%初始輸入層到隱層的權(quán)值
B1=bestX(w1num+1:w1num+hiddennum);??%初始隱層閾值
IW1=reshape(w1hiddennuminputnum);
IB1=reshape(B1hiddennum1);
%%?創(chuàng)建ELM網(wǎng)絡(luò)
[LWTFTYPE]?=?elmtrain(PtrainTtrainhiddennum‘sig‘0IW1IB1);
%%?測試網(wǎng)絡(luò)
disp([‘2、使用優(yōu)化后的權(quán)值和閾值‘])
disp(‘測試樣本預(yù)測結(jié)果:‘)
%?ELM仿真測試
T_test_sim2?=?elmpredict(PtestIW1IB1LWTFTYPE);
T_train_sim2?=?elmpredict(PIW1IB1LWTFTYPE);
%?反歸一化
Y21?=?mapminmax(‘reverse‘T_test_sim2outFP);?%?輸出測試樣本
%?Y22?=?mapminmax(‘reverse‘T_train_sim2outFP);?%?輸出訓(xùn)練樣本
err2=norm(Y21-T_test);
%?err21=norm(Y22-T);
disp([‘測試樣本的仿真誤差:‘num2str(err2)])
%?disp([‘訓(xùn)練樣本的仿真誤差:‘num2str(err21)])
%%?結(jié)果對比?分三個(gè)指標(biāo)進(jìn)行結(jié)果對比?
result?=?[T_test‘?Y21‘];
N?=?length(T_test);
%?三大評價(jià)因子?:?有效拋擲率???
%?有效拋擲率
rate0?=?T_test(1:);
rate1?=?Y11(1:);
rate2?=?Y21(1:);
%?松散系數(shù)
loose0?=?T_test(2:);?
loose1?=?Y11(2:);
loose2?=?Y21(2:);
%?安全距離
distance0?=??T_test(3:);
distance1?=?Y11(3:);
distance2?=?Y21(3:);
%?均方誤差??abs(參數(shù)1-參數(shù)2).^2/樣本數(shù)
Er1?=?mse(rate1-rate0);?
Er2?=?mse(rate2-rate0);
El1?=?mse(loose1-loose0);?
El2?=?mse(loose2-loose0);
Ed1?=?mse(distance1-distance0);?
Ed2?=?mse(distance2-distance0);
%?各評價(jià)因子?決定系數(shù)
Rr1=(N*sum(rate1.*rate0)-sum(rate1)*sum(rate0))^2/((N*sum((rate1).^2)-(sum(rate1))^2)*(N*sum((rate0).^2)-(sum(rate0))^2));?
Rr2=(N*sum(rate2.*rate0)-sum(rate2)*sum(rate0))^2/((N*sum((rate2).^2)-(sum(rate2))^2)*(N*sum((rate0).^2)-(sum(rate0))^2));?
Rl1=(N*sum(loose1.*loose0)-sum(loose1)*sum(loose0))^2/((N*sum((loose1).^2)-(sum(loose1))^2)*(N*sum((loose0).^2)-(sum(loose0))^2));?
Rl2=(N*sum(loose2.*loose0)-sum(loose2)*sum(loose0))^2/((N*sum((loose2).^2)-(sum(loose2))^2)*(N*sum((loose0).^2)-(sum(loose0))^2));?
Rd1=(N*sum(distance1.*distance0)-sum(distance1)*sum(distance0))^2/((N*sum((distance1).^2)-(sum(distance1))^2)*(N*sum((distance0).^2)-(sum(distance0))^2));?
Rd2=(N*sum(distance2.*distance0)-sum(distance2)*sum(distance0))^2/((N*sum((distance2).^2)-(sum(distance2))^2)*(N*sum((distance0).^2)-(sum(distance0)
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-05-12?11:57??GA-ELM_2?v2.0\
?????文件????????6400??2016-04-25?00:27??GA-ELM_2?v2.0\callELMfun.m
?????文件?????????806??2016-04-25?00:00??GA-ELM_2?v2.0\data.mat
?????文件????????1421??2016-04-24?19:13??GA-ELM_2?v2.0\ELMfun.m
?????文件????????1640??2016-04-09?17:56??GA-ELM_2?v2.0\elmpredict.m
?????文件????????2506??2016-04-24?10:10??GA-ELM_2?v2.0\elmtrain.m
?????文件????????2395??2016-04-09?17:48??GA-ELM_2?v2.0\elmtrain2.m
?????文件????????1094??2016-04-24?18:36??GA-ELM_2?v2.0\GAELMdata.mat
?????文件????????2566??2016-04-26?16:51??GA-ELM_2?v2.0\GAELMMain.m
?????文件?????????447??2016-04-24?10:30??GA-ELM_2?v2.0\Objfun.m
- 上一篇:windows64位matlab中simplemkl
- 下一篇:PSO-ELM源碼
評論
共有 條評論