赞
踩
遗传算法和广义回归神经网络结合起来,构建出GA-GRNN方法,利用遗传算法的全局寻优和广义回归神经网络结构简单的特点,自动搜索和匹配最优光滑因子参数,实现数据精准分类.通过与实际分类情况比较,表明GA-GRNN法在实现高精度预测的同时,能够有效避免训练数据预测精度的降低.
%% 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
[1]崔义强, 赵顺利. 基于GA-GRNN的瓦斯涌出量预测[J]. 现代矿业, 2016, 000(001):171-173.
见博客主页
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。