GRNN的数据预测-基于广义回归神经网络

GRNN的数据预测-基于广义回归神经网络
GRNN的数据预测-基于广义回归神经网络

%% 案例8:GRNN的数据预测—基于广义回归神经网络的货运量预测

%% 清空环境变量

clc;

clear all

close all

nntwarn off;

%% 载入数据

load data;

% 载入数据并将数据分成训练和预测两类

p_train=p(1:12,:);

t_train=t(1:12,:);

p_test=p(13,:);

t_test=t(13,:);

%% 交叉验证

desired_spread=[];

mse_max=10e20;

desired_input=[];

desired_output=[];

result_perfp=[];

indices = crossvalind('Kfold',length(p_train),4);

h=waitbar(0,'正在寻找最优化参数....')

k=1;

for i = 1:4

perfp=[];

disp(['以下为第',num2str(i),'次交叉验证结果'])

test = (indices == i); train = ~test;

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_tra in);

p_cv_test=tramnmx(p_cv_test,minp,maxp);

for spread=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);

error=t_cv_test-test_Out;

disp(['当前网络的mse为',num2str(mse(error))])

perfp=[perfp mse(error)];

if mse(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_error=t_test-grnn_prediction_result';

disp(['GRNN神经网络三项流量预测的误差为',num2str(abs(grnn_error))])

save best desired_input desired_output p_test t_test grnn_error mint maxt

广义回归神经网络MATLAB源程序

GRNN神经网络---广义回归神经网络,主要用于函数逼近。 x=-2:0.01:1 y=2*x.^6+3*x.^5-3*x.^3+x.^2+1 P=x(1:15:end) T=y(1:15:end) spread=[0.05 0.2 0.4 0.6 0.8]; l_style={'r.-','bo--','ko-.','k*--','r^-'}; for i=1:length(spread) net=newgrnn(P,T,spread(i)); a=sim(net,P); plot(P,a,l_style{i}) hold on end plot(P,T,'o'); legend('spread=0.05','spread=0.2','spread=0.4' ,'spread=0.6','spread=0.8','train data'); title('GRNN神经网络spread探讨')

load data; % 载入数据并将数据分成训练和预测两类 p_train=p(1:10,:); p_test=p(11:13,:); t_train=t(1:10,:); t_test=t(11:13,:); % 将各个矩阵转置以便适应网络结构 p_train=p_train'; t_train=t_train'; p_test=p_test'; t_test=t_test'; % 将数据归一化 [pn,minp,maxp,tn,mint,maxt]=premnmx(p_train,t_ train); p2n=tramnmx(p_test,minp,maxp); for sc=0.1:0.01:1; tic, net=newgrnn(pn,tn,sc);

基于果蝇算法优化广义回归神经网络的凝汽器真空预测

收稿日期:2018-02-27 基金项目:江苏省高等学校大学生实践创新训练计划项目(201711276025Y)三 作者简介:葛晓霞(1962-),女,博士,教授三从事电厂设备及系统优化二控制二仿真技术的研究工作三 基于果蝇算法优化广义回归神经 网络的凝汽器真空预测 葛晓霞,肖洪闯,嵇 卫,蔡宁宁,缪国钧 (南京工程学院能源与动力工程学院,南京211167) 摘要:针对凝汽器真空模型复杂而难以准确建立的问题,提出了基于果蝇算法优化广义回归神经网络(FOAGRNN)构建凝汽器真空预测模型的新方法三为了简化网络模型,通过计算平均影响值(MIV)筛选出对凝汽器真空影响较为重要的变量三采用果蝇算法对光滑因子进行优化选取,减少人为设置参数对预测效果的影响,提高广义回归神经网络(GRNN)的预测精度三将该方法应用于660MW 火电机组凝汽器真空预测,并与未经变量筛选的GRNN 及FOAGRNN 预测结果进行对比三结果表明筛选变量过后的FOAGRNN 模型的预测精度明显优于另外两种,平均相对误差为1.0925%,能够准确地预测凝汽器真空变化值三 关键词:凝汽器真空;果蝇算法;广义回归神经网络;平均影响值;预测模型分类号:TK242 文献标识码:A 文章编号:1001-5884(2018)03-0208-05 Vacuum Pediction of Condenser Based on Generalized Regression Neural Network Optimized by Fruit Fly Algorithm GE Xiao-xia,XIAO Hong-chuang,JI Wei,CAI Ning-ning,MIAO Guo-jun (School of Energy and Power Engineering,Nanjing Institute of Technology,Nanjing 211167,China) Abstract :To solve the problem of complex and difficulty to establish the vacuum model of condenser,a new method is proposed to optimize the vacuum prediction model of condenser in the generalized regression neural network (FOAGRNN).By calculating the average influence value (MIV),several important variables are selected to simplify the network model. Using the fruit fly algorithm to optimize the smooth factor manages to reduce the effect of artificial setting parameters on the prediction and improve the prediction accuracy of the generalized regression neural network (GRNN).This method is applied to the vacuum prediction of the condenser of 660MW thermal power unit,the prediction accuracy of which is compared with those of GRNN and FOAGRNN.The results show that the prediction accuracy of the optimized FOAGRNN model afterselecting several specific variables is significantly more precise thanthoseofthe other two models.The average relative error is 1.0925%.In a word,theoptimizedFOAGRNN model can accurately predict the vacuum change value of the condenser. Key words :condenser vacuum ;fruit fly optimization algorithm ;general regressionneuralnetwork ;mean influence value ;prediction model 0 前 言 目前,高参数二大容量燃煤凝汽式火电机组已经成为我国火力发电的主力三凝汽器作为火力发电整个汽水循环的重要枢纽,其性能优劣与机组的经济性与安全性有着密切的联系三凝汽器真空作为评价凝汽器工作性能的重要指标,维持其稳定对机组安全经济运行有着重要意义三影响凝汽器真空的因素较多 [1] ,如何建立凝汽器真空模型,从而实现对 凝汽器真空的优化控制成为目前的研究热点三张利平 [2] 等 使用粒子群算法优化Elman 网络参数的方法预测凝汽器高 低压侧真空;王建国[3]等采用粒子群算法优化径向基函数神经网络(RBF)参数建立凝汽器真空预测模型;王彪[4]等使用误差反向传播神经网络(Error Back -Propagation,BP)建立凝汽器背压预测模型;夏琳琳[5]等采用3种神经网络组合预测的方法建立凝汽器真空预测模型;王建国[6]等利用粒子群算法优化BP 神经网络的方法实现对凝汽器真空的预测三对于基于神经网络建立的预测模型而言,参数设置值对预测效果有着较大的影响三在无先验知识的情况下,研究者为获得最优预测模型往往需要多次调整参数三广义回归神经网络结构较为简单,只需人为设置高斯基函数的宽度系数(光滑因子),因此,最大程度地减轻了人为因素对模型预测效果的影响,并且算法本身具有很强的非线性映射能力,且在样本数 第60卷第3期汽 轮 机 技 术Vol.60No.3 2018年6月 TURBINE TECHNOLOGY Jun.2018 万方数据

基于广义回归神经网络的飞参数据预处理

第38卷第2期2008年3月 航空计算技术 AeronauticalComputingTechnique V01.38No.2 Mar.2008基于广义回归神经网络的飞参数据预处理 曲建岭,唐昌盛,李万泉,高峰 (海军航空工程学院青岛分院航空仪表与控制工程教研室,山东青岛266041) 摘要:由于存在干扰。飞参系统记录的发动机参数中,经常会有不少间断,最和奇异值。为了利用数据对发动机性能趋势进行预测,必须对数据进行预处理。分析了航空发动机作为一个系统,其各主要输入和输出参数之间存在的函数关系。研究了利用广义回归神经网络和参数之间的关系对数据进行预处理,结果得到了较为正常的数据,证明该方法是有效的。 关键词:飞参数据;广义回归神经网络;预处理;航空发动机 中图分类号:v557文献标识码:A文章编号:1671-654X(2008)02—0027—03 引言 飞参系统记录了飞机飞行过程中的发动机工作参数,如高压转速、低压转速、排气温度等,利用这些数据可以对发动机的性能进行一定程度上的监控。在对某型飞机飞参记录器记录的发动机参数进行分析之前,发现高压转速数据中存在不少野值点(间断点和奇异值),分析认为,它们是由于信号测量和传输时受到干扰导致的失真,因而不能直接用于对发动机的性能分析,必须对数据进行预处理。RBF(RadialBasisFunc—tion)神经网络具有强大的信息处理能力,一个适当设计的RBF神经网络能在任意精度上逼近一个复杂的非线性函数,同时它还具有自学习、自适应、结构简单、训练简洁、收敛速度快等优点。广义回归(GRNN)神经网络是RBF神经网络的一种变化形式,它具有训练速度快、非线性映射能力强等特点,特别适合于解决函数逼近问题…。因此,研究了利用广义回归神经网络对这些野值点进行预处理。 1广义回归神经网络的基本原理 GRNN最早由Sprecht提出,它是径向基神经网络的变形,其结构与径向基网络接近,仅在输出的线性层有一些不同,非常适合于函数的逼近。GRNN的结构如图1所示¨。。 图l中L瞩.。表示第一层(径向基函数层)的权值矩阵,LWI.。为Q×R矩阵,Q为训练样本对的数量,即第一层的神经元个数,尺为网络输入的维数,K为预定义的分类类别数,即第二层(竞争层)的神经元个数。 P为待检特征向量(RX1),b。为第一层的阈值向量(Q×1),玎。为第一层径向基传递函数的输入向量(QXl),a。为第一层径向基传递函数的输出向量(Q×1)。径向基传递函数通常采用高斯函数: Radb傩(工):exp(一止掣)(1) ≈zcri 其中,盯;决定了第i个隐含层位置中的基函数的形状,以越大,则基函数越平滑,所以又称之为光滑因子。 L%.。是连接第一层和第二层的权值矩阵。假设‘有Q组训练样本对,。/O。,i/o:,…,Io/0D,其中I;(i=1,2,…,Q)为训练样本对的输入向量(R×1),0;(i=1,2,…,Q)为训练样本对的目标向量,D:’的形式是K维列向量(K×1),其中的K个元素分别对应K个分类类别,每个向量有且仅有一个元素为l,其余元素为O,表示所对应的输入向量属于与该元素相对应的一种类别。训练时,输入向量以i:1,2,…,Q),以列向量为输入形式组成一个R×Q的输入向量矩阵P。,目标向量组成一个K×Q的目标向量矩阵r,即: r:[D:,oT,…,o;l GR神经网络的训练过程比较简单,网络的权值矩阵£暇.。被设置为输入向量矩阵P。的转置矩阵,权值矩阵£w2.。被设置为目标向量矩阵r。训练完成时,网络的输出矩阵和目标向量矩阵的残差为0,这是GRNN的一个优点。 当待检向量P=[P。,P:,…,PR]7输入给已经训练好的网络时,网络的第一层计算该输入向量与权值矩 收稿日期:2008—01—03修订日期:2008—02—20 作者简介:曲建岭(1969一),男,山东莱阳人,教授,博士,研究方向为智能故障诊断和飞参数据的应用。 万方数据

广义回归神经网络MATLAB源程序

GRN神经网络---广义回归神经网络,主要用于函数逼近。 x=-2::1 y=2*x.A6+3*x.A5-3*x.A3+x.A2+1 P=x(1:15:e nd) T=y(1:15:e nd) spread=[]; l_style=C,'bo--','ko-.','k*--','rA-'}; for i=1:le ngth(spread) net=n ewgr nn( P,T,spread(i)); a=sim (n et,P); plot(P,a,l_style{i}) hold on end plot(P,T,'o'); lege nd('spread二','spread二','spread二 ','spread二'

,'spread=','trai n data'); title('GRNN 神经网络 spread 探讨') load data; %载入数据并将数据分成训练和预测两类 p_trai n=p(1:10,:); p_test=p(11:13,:); t_trai n=t(1:1O,:); t_test=t(11:13,:); %将各个矩阵转置以便适应网络结构 p_trai n=p_trai n'; t_trai n=t_trai n'; p_test=p_test'; t_test=t_test'; %将数据归一化 [pn ,mi np,maxp,t n,mi nt,maxt]=pre mnm x(p_trai n,t_ trai n); p2n=tra mnm x(p_test,mi np,maxp); for sc=::1;

tic, net=n ewgr nn(pn ,t n,sc); sc toe Out=sim (n et,p2 n); a2=post mnm x(Out,mi nt,maxt); e=t_test-a2'; perf=mse(e); Y=sim (n et,p n); a3=post mnm x(Y,mi nt,maxt); ep=a3-t_tra in; perfp=mse(ep); hold on; figure(1); title( '网络的预测误差') plot(se,perf, 'g:*'); hold on; figure(2); title( '网络的逼近误差') plot(sc,perfp, 'r:*' ); end

matlab神经网络工具箱创建神经网络

为了看懂师兄的文章中使用的方法,研究了一下神经网络 昨天花了一天的时间查怎么写程序,但是费了半天劲,不能运行,百度知道里倒是有一个,可以运行的,先贴着做标本 % 生成训练样本集 clear all; clc; P=[110 0.807 240 0.2 15 1 18 2 1.5; 110 2.865 240 0.1 15 2 12 1 2; 110 2.59 240 0.1 12 4 24 1 1.5; 220 0.6 240 0.3 12 3 18 2 1; 220 3 240 0.3 25 3 21 1 1.5; 110 1.562 240 0.3 15 3 18 1 1.5; 110 0.547 240 0.3 15 1 9 2 1.5]; 0 1.318 300 0.1 15 2 18 1 2]; T=[54248 162787 168380 314797; 28614 63958 69637 82898; 86002 402710 644415 328084; 230802 445102 362823 335913; 60257 127892 76753 73541; 34615 93532 80762 110049; 56783 172907 164548 144040]; @907 117437 120368 130179]; m=max(max(P)); n=max(max(T)); P=P'/m; T=T'/n; %-------------------------------------------------------------------------% pr(1:9,1)=0; %输入矢量的取值范围矩阵 pr(1:9,2)=1; bpnet=newff(pr,[12 4],{'logsig', 'logsig'}, 'traingdx', 'learngdm'); %建立BP神经网络, 12个隐层神经元,4个输出神经元 %tranferFcn属性 'logsig' 隐层采用Sigmoid传输函数 %tranferFcn属性 'logsig' 输出层采用Sigmoid传输函数 %trainFcn属性 'traingdx' 自适应调整学习速率附加动量因子梯度下降反向传播算法训练函数 %learn属性 'learngdm' 附加动量因子的梯度下降学习函数 net.trainParam.epochs=1000;%允许最大训练步数2000步 net.trainParam.goal=0.001; %训练目标最小误差0.001 net.trainParam.show=10; %每间隔100步显示一次训练结果 net.trainParam.lr=0.05; %学习速率0.05

相关文档
最新文档