function [bestchrom,trace]=gaforgrnn(P_train,T_train,P_test,T_test)
%% 遗传算法参数初始化
maxgen=100; %进化代数,即迭代次数
sizepop=10; %种群规模
pcross=0.5; %交叉概率选择,0和1之间
pmutation=0.5; %变异概率选择,0和1之间
%%
numsum=1;
lenchrom=ones(1,numsum);
bound=[zeros(numsum,1) 1*ones(numsum,1)]; %spread的寻优范围[0 1]
%------------------------------------------------------种群初始化------------------------------%------------------
individuals=struct('fitness',zeros(1,sizepop), 'chrom',[]); %将种群信息定义为一个结构体
bestfitness=[]; %每一代种群的最佳适应度
%初始化种群
for i=1:sizepop
%随机产生一个种群
individuals.chrom(i,:)=Code(lenchrom,bound); %编码
x=individuals.chrom(i,:);
%计算适应度
individuals.fitness(i)= fun(x,P_train,T_train,P_test,T_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,P_train,T_train,P_test,T_test);
end
%找到最小和最大适应度的染色体及它们在种群中的位置
[newbestfitness,newbestindex]=max(individuals.fitness);
[worestfitness,worestindex]=min(individuals.fitness);
% 代替上一次进化中最好的染色体
if bestfitness<newbestfitness
bestfitness=newbestfitness;
bestchrom=individuals.chrom(newbestindex,:);
end
individuals.chrom(worestindex,:)=bestchrom;
individuals.fitness(worestindex)=bestfitness;
trace(i)=bestfitness ;%记录每一代进化中最好的适应度
end
没有合适的资源?快使用搜索试试~ 我知道了~
【GRNN分类】基于遗传算法优化GRNN实现数据分类附Matlab源码 上传.zip
共13个文件
m:9个
mat:2个
tif:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 183 浏览量
2023-04-20
09:50:12
上传
评论
收藏 124KB ZIP 举报
温馨提示
1.版本:matlab2014/2019a,内含运行结果,不会运行可私信 2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士等教研学习使用 5.博客介绍:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可si信
资源推荐
资源详情
资源评论
收起资源包目录
【GRNN分类】基于遗传算法优化GRNN实现数据分类附Matlab源码 上传.zip (13个子文件)
select.m 770B
三维数据.xlsx 93KB
main1.m 1KB
wine.mat 20KB
Code.m 341B
2.tif 1.05MB
gaforgrnn.m 2KB
Cross.m 2KB
test.m 215B
main2.m 1KB
fun.m 183B
data.mat 648B
Mutation.m 2KB
共 13 条
- 1
资源评论
Matlab科研辅导帮
- 粉丝: 2w+
- 资源: 7664
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功