Grnn神经网络实现程序(基于Matlab).doc
- 文档编号:14661950
- 上传时间:2023-06-25
- 格式:DOC
- 页数:3
- 大小:31.54KB
Grnn神经网络实现程序(基于Matlab).doc
《Grnn神经网络实现程序(基于Matlab).doc》由会员分享,可在线阅读,更多相关《Grnn神经网络实现程序(基于Matlab).doc(3页珍藏版)》请在冰点文库上搜索。
%%注本程序代码主体部分引自《MATLAB神经网络30个案例分析》
%%为大家使用方便,本人在文件读入和输出部分做了修改,同时对关键语句进行了注释
%%清空环境变量
clc;
clearall
closeall
nntwarnoff;
%%载入数据
%建模数据_训练样本
loadD:
\NNS\in.txt
loadD:
\NNS\out.txt
%检验数据_测试样本
loadD:
\NNS\testin.txt
loadD:
\NNS\testout.txt
%载入数据并将数据分成训练和预测两类
p_train=in;
t_train=out;
p_test=testin;
t_test=testout;
%%交叉验证
desired_spread=[];
mse_max=10e20;
desired_input=[];
desired_output=[];
result_perfp=[];
indices=crossvalind('Kfold',length(p_train),4);%交叉验证函数,这里的4表示4折,即将length(p_train)个样本分成4组。
h=waitbar(0,'正在寻找最优化参数....')%进度条,h为句柄
k=1;
fori=1:
4%这里4是将元数据分为4份,其中3/4用来训练,1/4用来检验
perfp=[];
disp(['以下为第',num2str(i),'次交叉验证结果'])%disp:
显示函数,num2srt:
数字转字符
test=(indices==i);train=~test;%为test及train赋值,注意这里的test及train均为逻辑值
p_cv_train=p_train(train,:
);%通过逻辑值实现数据调取,从建模数据中选取
t_cv_train=t_train(train,:
);%通过逻辑值实现数据调取,从建模数据中选取
p_cv_test=p_train(test,:
);%通过逻辑值实现数据调取,从建模数据中选取
t_cv_test=t_train(test,:
);%通过逻辑值实现数据调取,从建模数据中选取
p_cv_train=p_cv_train';%转置
t_cv_train=t_cv_train';%转置
p_cv_test=p_cv_test';%转置
t_cv_test=t_cv_test';%转置
[p_cv_train,minp,maxp,t_cv_train,mint,maxt]=premnmx(p_cv_train,t_cv_train);%premnmx():
将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。
p_cv_test=tramnmx(p_cv_test,minp,maxp);%tramnmx():
使网络所用的新数据和样本数据接受相同的预处理。
forspread=0.1:
0.1:
2;
net=newgrnn(p_cv_train,t_cv_train,spread);
waitbar(k/80,h);
disp(['当前spread值为',num2str(spread)]);
test_Out=sim(net,p_cv_test);
test_Out=postmnmx(test_Out,mint,maxt);%postmnmx()依照预处理的最大值最小值反向归一化。
error=t_cv_test-test_Out;
disp(['当前网络的mse为',num2str(mse(error))])%mse()为均方函数。
perfp=[perfpmse(error)];
ifmse(error) mse_max=mse(error); desired_spread=spread; desired_input=p_cv_train; desired_output=t_cv_train; end k=k+1; end result_perfp(i,: )=perfp; end; close(h) disp(['最佳spread值为',num2str(desired_spread)]) disp(['此时最佳输入值为']) desired_input; disp(['此时最佳输出值为']) desired_output; %%采用最佳方法建立GRNN网络 net=newgrnn(desired_input,desired_output,desired_spread); p_test=p_test'; p_test=tramnmx(p_test,minp,maxp);%依照预定最大值及最小值进行归一化。 grnn_prediction_result=sim(net,p_test);%利用已经建立的网络模型进行预测。 grnn_prediction_result=postmnmx(grnn_prediction_result,mint,maxt); grnn_prediction_result=grnn_prediction_result';%转置预测结果。 grnn_error=t_test-grnn_prediction_result;%模拟与实测误差。 disp(['GRNN神经网络三项流量预测的误差为',num2str(mse(grnn_error))]) %%预测结果导出模块 save'D: \OUT\grnn_desired_input.txt'desired_input-ascii;%导出优化建模数据-输入 save'D: \OUT\grnn_desired_output.txt'desired_output-ascii;%导出优化建模数据-输出 save'D: \OUT\grnn_p_test.txt'p_test-ascii;%导出预测输入数据 %可对比 save'D: \OUT\grnn_t_test.txt't_test-ascii;%导出实测数据 save'D: \OUT\grnn_prediction_result.txt'"ninhao"grnn_prediction_result-ascii;%导出预测数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Grnn 神经网络 实现 程序 基于 Matlab