function [bestchrom ,trace]=gaforelm(SG,inputnum,hiddennum,inputn_train,label_train,inputn_test,label_test)
%% 遗传算法参数初始化
maxgen=100; %进化代数,即迭代次数
sizepop=20; %染色体数量规模/对应粒子群中的种群
pcross=[0.7]; %交叉概率选择,0和1之间
pmutation=[0.05]; %变异概率选择,0和1之间
%节点总数
numsum=inputnum*hiddennum+hiddennum;
lenchrom=ones(1,numsum);
bound=[-1*ones(numsum,1) 1*ones(numsum,1)]; %数据范围
%------------------------------------------------------种群初始化------------------------------%------------------
individuals=struct('fitness',zeros(1,sizepop), 'chrom',[]); %将种群信息定义为一个结构体
bestfitness=[]; %每一代种群的最佳适应度
bestchrom=[]; %适应度最好的染色体
trace=0;
%初始化种群
for i=1:sizepop
%随机产生一个种群
individuals.chrom(i,:)=Code(lenchrom,bound); %编码
x=individuals.chrom(i,:);
%计算适应度
individuals.fitness(i)=fun(x,inputnum,hiddennum,inputn_train,label_train,inputn_test,label_test); %染色体的适应度
end
%找最好的染色体
[bestfitness, bestindex]=max(individuals.fitness);
bestchrom=individuals.chrom(bestindex,:); %最好的染色体
%% 迭代求解最佳初始阀值和权值
% 进化开始
for i=1:maxgen
i
%选择
individuals=select(individuals,sizepop);
%交叉
individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);
%变异
individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,i,maxgen,bound);
% 计算适应度
for j=1:sizepop
x=individuals.chrom(j,:); %解码
individuals.fitness(j)=fun(x,inputnum,hiddennum,inputn_train,label_train,inputn_test,label_test);
end
%找到最优适应度的染色体及它们在种群中的位置
[newbestfitness,newbestindex]=max(individuals.fitness);
% 代替上一次进化中最好的染色体
if bestfitness<newbestfitness
bestfitness=newbestfitness;
bestchrom=individuals.chrom(newbestindex,:);
end
individuals.chrom(bestindex,:)=bestchrom;
individuals.fitness(bestindex)=bestfitness;
trace(i)=bestfitness ;%记录每一代进化中最好的适应度和平均适应度
% %% %%%%%% 爬山%%%%%%%%%%%
% center_fit=bestfitness;%以当前最好染色体对应的适应度值
% center=bestchrom;
% subpop=subpop_generate(center,center_fit,SG,inputnum,hiddennum,inputn_train,label_train,inputn_test,label_test);
% % 将染色体以及对应的适应度存在subpop中
% if max(subpop(2:end,end))<subpop(1,end)%以当前最好种群为爬山中心,在其周围寻找SG个点,如果有更优值则更新值最优,如果没有,则跳出循环
% break;
% else % 找出爬山中心附近这SG点中最好的1个
% [I,J]=max(subpop(:,2:end));
% newbestchrom=subpop(J,1:end-1);
% newbestfit=I;
% end
% %%%%%%%%%%%% 重新更新一次%%%%%%%%%%%%%%
% % 代替上一次进化中最好的染色体
% if bestfitness<newbestfit
% bestfitness=newbestfit;
% bestchrom=newbestchrom;
% end
% trace(i)=bestfitness ;%记录每一代进化中最好的适应度和平均适应度
end
end%出售各类算法优化深度极限学习机代码392503054
没有合适的资源?快使用搜索试试~ 我知道了~
【预测模型-ElM分类】基于遗传算法优化ElM神经网络实现数据分类附matlab代码.zip
共21个文件
m:12个
jpg:4个
mat:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 60 浏览量
2023-04-20
09:51:19
上传
评论 1
收藏 88KB ZIP 举报
温馨提示
1.版本:matlab2014/2019a,内含运行结果,不会运行可私信 2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士等教研学习使用 5.博客介绍:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可si信
资源推荐
资源详情
资源评论
收起资源包目录
【预测模型-ElM分类】基于遗传算法优化ElM神经网络实现数据分类附matlab代码.zip (21个子文件)
最终数据(1).xlsx 12KB
elmtrain.m 3KB
select.m 1KB
IGA_ELM.mat 399B
elmpredict.m 1KB
新建 XLS 工作表.xls 22KB
1.jpg 22KB
HUATU.m 630B
main.m 3KB
subpop_generate.m 1KB
5.jpg 22KB
gaforelm.m 3KB
Code.m 442B
Cross.m 2KB
test.m 253B
fun.m 933B
Y_elm.mat 401B
label_test.mat 193B
3.jpg 22KB
Mutation.m 2KB
4.jpg 23KB
共 21 条
- 1
资源评论
Matlab科研辅导帮
- 粉丝: 2w+
- 资源: 7666
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功