【预测模型-GRNN】基于遗传算法优化GRNN实现数据回归拟合matlab源码

1 模型

遗传算法和广义回归神经网络结合起来,构建出GA-GRNN方法,利用遗传算法的全局寻优和广义回归神经网络结构简单的特点,自动搜索和匹配最优光滑因子参数,实现数据精准分类.通过与实际分类情况比较,表明GA-GRNN法在实现高精度预测的同时,能够有效避免训练数据预测精度的降低.

2 部分代码

%% ga-grnn
%% 1.初始化环境
clc;clear;close all;format compact;format short;
%% 2.加载数据
% data=xlsread('三维数据.xlsx');
load('wine.mat')
input=wine; 
output=wine_labels;
% output=1+round(rand(size(wine,1),1));
%% 划分数据集
n=randperm(size(input,1));m=floor(0.7*size(input,1));

p_train=input(n(1:m),:)';%取转置 编成一列一个样本
ttrain=output(n(1:m));
p_test=input(n(m+1:end),:)';
ttest=output(n(m+1:end),:);

%% 归一化
[trainn ,trains]=mapminmax(p_train,0,1);
p_train=trainn;
testn=mapminmax('apply',p_test,trains);  
p_test=testn;
% 将类别转换为向量
for i=1:length(ttrain)
t_train(ttrain(i),i)=1;
end
for i=1:length(ttest)
t_test(ttest(i),i)=1;
end
%% 3.创建ga-grnn
[spread,trace]=gaforgrnn(p_train,t_train,p_test,t_test);

figure
plot(trace)
ylabel('适应度值(测试集MSE)')
xlabel('迭代次数')
title('适应度曲线')
%% 利用寻优得到的spread重新训练grnn
net=newgrnn(p_train,t_train,spread);
pred_train=sim(net,p_train);
pred_test=sim(net,p_test);
%% 4.结果统计
[~, J]=max(pred_test',[],2);
[~, J1]=max(t_test',[],2);
disp('展示grnn的测试集分类')
test_accuracy=sum(J==J1)/length(J)
figure
stem(J,'bo');
grid on
hold on 
plot(J1,'r*');
legend('测试输出','真实标签')
title('测试集')
xlabel('样本数')
ylabel('分类标签')
hold off

3 仿真结果

4 参考文献

[1]崔义强, 赵顺利. 基于GA-GRNN的瓦斯涌出量预测[J]. 现代矿业, 2016, 000(001):171-173.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值