HI, please help me to forecast feature groundwater level using feed forward neural network with LM algorithm, i developed the feed forward neural network with LM algorithm with ANN architecture 3-5-1, my model is as follows, but i want to use this model for forecasting at least 3 to 6 point ahead, can any one please help me,
clear all;
clc;
load dannlm.txt;
t=dannlm(:,1);
rain=dannlm(:,2);
et=dannlm(:,3);
gwl=dannlm(:,4);
%[ACF, Lags, Bounds] = autocorr(gwl, [], 2);
%[PACF, Lags, Bounds] = parcorr(gwl, [], 2);
%[CCF, Lags, Bounds] = crosscorr(gwl,rain);
gwlmin=min(gwl);
gwlmax=max(gwl);
rain=(rain-min(rain))/(max(rain)-min(rain));
et=(et-min(et))/(max(et)-min(et));
gwl=(gwl-min(gwl))/(max(gwl)-min(gwl));
%*****Data Preparation****
for t=5:195
Data(t-4,:)=[rain(t-4) et(t-1) gwl(t-1) gwl(t)];
end
%Define Input patter for Training and Validation
INPTR=Data(1:150, 1:3);
TARTR=Data(1:150,4);
net=newff([0 1; 0 1; 0 1], [5 1], {'logsig', 'purelin'}, 'trainlm');
net.trainParam.epochs=500;
net.trainParam.goal=0.0001;
net.performFcn='mse';
net=init(net);
net=train(net, INPTR', TARTR');
a=sim(net, INPTR');
z=[a' TARTR];
INPVAL=Data(151:191, 1:3);
TARVAL=Data(151:191,4);
y=sim(net, INPVAL');
zv=[y' TARVAL];
%Converting back to Original Flow of gwl Validation
zv=zv*(gwlmax-gwlmin)+gwlmin;
save val1.txt zv -ascii;
z=z*(gwlmax-gwlmin)+gwlmin;
save cal1.txt z -ascii;
CORR_CAL=corrcoef(z)
CORR_VAL=corrcoef(zv)
COM_CAL=z(:,1);
OBS_CAL=z(:,2);
COM_VAL=zv(:,1);
OBS_VAL=zv(:,2);
Eff_ANN_CAL=1-(sumsqr(OBS_CAL-COM_CAL)/sumsqr(OBS_CAL-mean(OBS_CAL)))
Eff_ANN_VAL=1-(sumsqr(OBS_VAL-COM_VAL)/sumsqr(OBS_VAL-mean(OBS_VAL)))
RMSE_ANN_CAL=sqrt(sumsqr(OBS_CAL-COM_CAL)/length(OBS_CAL))
RMSE_ANN_VAL=sqrt(sumsqr(OBS_VAL-COM_VAL)/length(OBS_VAL))
Ex_Var_ANN_CAL=sqrt(sumsqr(COM_CAL-mean(OBS_CAL))/sumsqr(OBS_CAL-mean(OBS_CAL)))
%ERROR_CAL=100*(OBS_CAL-COM_CAL)/OBS_CAL;
%ERROR_VAL=100*(OBS_VAL-COM_VAL)/OBS_VAL;
ANN_PEAK_CAL=(1-max(COM_CAL)/max(OBS_CAL))*100
ANN_PEAK_VAL=(1-max(COM_VAL)/max(OBS_VAL))*100

1 comentario

Anand Kumar
Anand Kumar el 8 de Mayo de 2015
Please convert above attachment to forecast at least 3 to 6 point ahead

Iniciar sesión para comentar.

 Respuesta aceptada

Greg Heath
Greg Heath el 11 de Mayo de 2015

0 votos

help narxnet
doc narxnet
net = narxnet(3:6,3:6,5);
===================================================================
% ===>GEH1: WHAT DO THE NAMES DANNLM AND ET STAND FOR?
% ===> GEH2: AUTOCORR(gwl,...), CROSSCORR(GWL,RAIN,...) AND % CROSSCORR(GWL,ET,...) CAN BE USED TO FIND THE SIGNIFICANT DELAYS.
for t=5:195
Data(t-4,:)=[rain(t-4) et(t-1) gwl(t-1) gwl(t)];
end
% ===>GEH3: What is the rationale for this combination?
% ===> GEH4: NEWFF has been obsolete for at least 5 years. Regardless, this is a time series problem which is more easily solved using NARXNET or it's obsolete predecessor.
z=[a' TARTR];
% ===>GEH5: Why not compute the error mse(a'-TARTR) ???
INPVAL=Data(151:191, 1:3);
TARVAL=Data(151:191,4);
% ===> GEH6: This is TEST data, NOT VALIDATION DATA! VALIDATION DATA IS USED TO TUNE PARAMETERS. TEST DATA IS USED TO OBTAIN UNBIASED ESTIMATES OF PERFORMANCE
% THAT IS AS FAR AS I WENT. AFTER CALCULATING
NMSE = mse(error)/mean(var(target',1) and/or
R2 = 1-NMSE
%SUCCESS OR FAILURE IS DETERMINED
Hope this helps.
Thank you for formally accepting my answer
Greg

Más respuestas (0)

Categorías

Más información sobre Get Started with MATLAB en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 8 de Mayo de 2015

Editada:

el 11 de Mayo de 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by