当前位置:   article > 正文

【预测模型】基于遗传算法优化GRNN实现数据分类matlab源码_grnn如何进行样本分组

grnn如何进行样本分组

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.

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/303340
推荐阅读
相关标签
  

闽ICP备14008679号