• 大小: 10KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-07
  • 语言: Matlab
  • 标签: GA-ELM  

资源简介

遗传算法优化的ELM matlab源码 (亲测亲写)

资源截图

代码片段和文件信息

clc
%% 不使用遗传算法
% 训练集
[PtraininFP] = mapminmax(P);
Ptest = mapminmax(‘apply‘P_testinFP);
% 测试集
[TtrainoutFP] = mapminmax(T);
Ttest = mapminmax(‘apply‘T_testoutFP);
%% ELM 训练
% 创建ELM网络
[IWBLWTFTYPE] = elmtrain2(PtrainTtrain30‘sig‘0);
%% 测试网络
disp([‘1、使用随机权值和阈值 ‘])
disp(‘测试样本预测结果:‘)
% 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); %训练样本的仿真误差
disp([‘测试样本的仿真误差:‘num2str(err1)])
% disp([‘训练样本的仿真误差:‘num2str(err11)])


%% 使用遗传算法
%% 使用优化后的权值和阈值
nputnum=size(P1);       % 输入层神经元个数 
outputnum=size(T1);      % 输出层神经元个数
% 训练集归一化
[PtraininFP] = mapminmax(P);
Ptest = mapminmax(‘apply‘P_testinFP);
% 测试集归一化
[TtrainoutFP] = mapminmax(T);
Ttest = mapminmax(‘apply‘T_testoutFP);

%% elm初始权值和阈值
w1num=inputnum*hiddennum; % 输入层到隐层的权值个数
w1=bestX(1:w1num);   %初始输入层到隐层的权值
B1=bestX(w1num+1:w1num+hiddennum);  %初始隐层阈值
IW1=reshape(w1hiddennuminputnum);
IB1=reshape(B1hiddennum1);
%% 创建ELM网络
[LWTFTYPE] = elmtrain(PtrainTtrainhiddennum‘sig‘0IW1IB1);
%% 测试网络
disp([‘2、使用优化后的权值和阈值‘])
disp(‘测试样本预测结果:‘)
% ELM仿真测试
T_test_sim2 = elmpredict(PtestIW1IB1LWTFTYPE);
T_train_sim2 = elmpredict(PIW1IB1LWTFTYPE);
% 反归一化
Y21 = mapminmax(‘reverse‘T_test_sim2outFP); % 输出测试样本
% Y22 = mapminmax(‘reverse‘T_train_sim2outFP); % 输出训练样本
err2=norm(Y21-T_test);
% err21=norm(Y22-T);
disp([‘测试样本的仿真误差:‘num2str(err2)])
% disp([‘训练样本的仿真误差:‘num2str(err21)])

%% 结果对比 分三个指标进行结果对比 
result = [T_test‘ Y21‘];
N = length(T_test);
% 三大评价因子 : 有效抛掷率   
% 有效抛掷率
rate0 = T_test(1:);
rate1 = Y11(1:);
rate2 = Y21(1:);
% 松散系数
loose0 = T_test(2:); 
loose1 = Y11(2:);
loose2 = Y21(2:);
% 安全距离
distance0 =  T_test(3:);
distance1 = Y11(3:);
distance2 = Y21(3:);

% 均方误差  abs(参数1-参数2).^2/样本数
Er1 = mse(rate1-rate0); 
Er2 = mse(rate2-rate0);

El1 = mse(loose1-loose0); 
El2 = mse(loose2-loose0);

Ed1 = mse(distance1-distance0); 
Ed2 = mse(distance2-distance0);

% 各评价因子 决定系数
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)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           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

评论

共有 条评论