这篇文章主要介绍“GRNN与PNN实例对比分析”,在日常操作中,相信很多人在GRNN与PNN实例对比分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”GRNN与PNN实例对比分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧! %% 清空环境变量 clear clc %% 训练集/测试集产生 % 导入数据 load iris_data.mat % 随机产生训练集和测试集 P_train = []; T_train = []; P_test = []; T_test = []; for i = 1:3 temp_input = features((i-1)*50+1:i*50,:); temp_output = classes((i-1)*50+1:i*50,:); n = randperm(50); % 训练集——120个样本 P_train = [P_train temp_input(n(1:40),:)']; T_train = [T_train temp_output(n(1:40),:)']; % 测试集——30个样本 P_test = [P_test temp_input(n(41:50),:)']; T_test = [T_test temp_output(n(41:50),:)']; end %% 模型建立 result_grnn = []; result_pnn = []; time_grnn = []; time_pnn = []; for i = 1:4 for j = i:4 p_train = P_train(i:j,:); p_test = P_test(i:j,:); %% GRNN创建及仿真测试 t = cputime; % 创建网络 net_grnn = newgrnn(p_train,T_train); % 仿真测试 t_sim_grnn = sim(net_grnn,p_test); T_sim_grnn = round(t_sim_grnn); t = cputime - t; time_grnn = [time_grnn t]; result_grnn = [result_grnn T_sim_grnn']; %% PNN创建及仿真测试 t = cputime; Tc_train = ind2vec(T_train); % 创建网络 net_pnn = newpnn(p_train,Tc_train); % 仿真测试 Tc_test = ind2vec(T_test); t_sim_pnn = sim(net_pnn,p_test); T_sim_pnn = vec2ind(t_sim_pnn); t = cputime - t; time_pnn = [time_pnn t]; result_pnn = [result_pnn T_sim_pnn']; end end %% 性能评价 % 正确率accuracy accuracy_grnn = []; accuracy_pnn = []; time = []; for i = 1:10 accuracy_1 = length(find(result_grnn(:,i) == T_test'))/length(T_test); accuracy_2 = length(find(result_pnn(:,i) == T_test'))/length(T_test); accuracy_grnn = [accuracy_grnn accuracy_1]; accuracy_pnn = [accuracy_pnn accuracy_2]; end % 结果对比 result = [T_test' result_grnn result_pnn]; accuracy = [accuracy_grnn;accuracy_pnn]; time = [time_grnn;time_pnn]; %% 绘图 figure(1) plot(1:30,T_test,'bo',1:30,result_grnn(:,4),'r-*',1:30,result_pnn(:,4),'k:^') grid on xlabel('测试集样本编号') ylabel('测试集样本类别') string = {'测试集预测结果对比(GRNN vs PNN)';['正确率:' num2str(accuracy_grnn(4)*100) '%(GRNN) vs ' num2str(accuracy_pnn(4)*100) '%(PNN)']}; title(string) legend('真实值','GRNN预测值','PNN预测值') figure(2) plot(1:10,accuracy(1,:),'r-*',1:10,accuracy(2,:),'b:o') grid on xlabel('模型编号') ylabel('测试集正确率') title('10个模型的测试集正确率对比(GRNN vs PNN)') legend('GRNN','PNN') figure(3) plot(1:10,time(1,:),'r-*',1:10,time(2,:),'b:o') grid on xlabel('模型编号') ylabel('运行时间(s)') title('10个模型的运行时间对比(GRNN vs PNN)') legend('GRNN','PNN') 到此,关于“GRNN与PNN实例对比分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注天达云网站,小编会继续努力为大家带来更多实用的文章!
|