Grnn神经网络实现程序(基于Matlab).doc

上传人:b**** 文档编号:14661950 上传时间:2023-06-25 格式:DOC 页数:3 大小:31.54KB
下载 相关 举报
Grnn神经网络实现程序(基于Matlab).doc_第1页
第1页 / 共3页
Grnn神经网络实现程序(基于Matlab).doc_第2页
第2页 / 共3页
Grnn神经网络实现程序(基于Matlab).doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Grnn神经网络实现程序(基于Matlab).doc

《Grnn神经网络实现程序(基于Matlab).doc》由会员分享,可在线阅读,更多相关《Grnn神经网络实现程序(基于Matlab).doc(3页珍藏版)》请在冰点文库上搜索。

Grnn神经网络实现程序(基于Matlab).doc

%%注本程序代码主体部分引自《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;%导出预测数据

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2