how to improve netc performance for prediciting ?
조회 수: 3 (최근 30일)
이전 댓글 표시
I'm dealing with a timeseries problem. I've chosen NARX network to solve the problem. I have three Inputs (Ambient Temp, Total Solar Radiation and Diffuse Solar Radiation) and eight Outputs (8 Temperatures of a collector). I've tried to find the significant Lags by means of cross-correlation and autocorrelation.
Corr=nncorr(Input,Output,10);
ACorr=nncorr(Output,Output,10);
I've plotted Corr and ACorr for finding the significant Lags but the maximum or minimum value are always one point after "maxlag". (for example with my code at 11). what does it mean?
I've trained the Network with data of 10 days. The training function is "trainbr", I've trained the Closedloop Network after training the Network too. I've used "divideblock" as well. For ID and FD I've used by try and error 4 delays. But the network is yet not good for predicting the other 20 days. I've have about 5% error in average . Can anyone give me some advice?
thanks in advance
Arsalan
댓글 수: 0
채택된 답변
Greg Heath
2016년 5월 25일
편집: Greg Heath
2016년 5월 25일
"I"nput dimension is I=3 and "O"utput dimension is O=8. However, WHAT IS N ??, the length of the total time span? If Ntrn ~ 0.7*N the number of training equations is Ntrneq = Ntrn*O. It is desirable that Ntrneq is not less than the number of parameters that you are trying to estimate Nw = ((NID+1)*I + NFD*O)*H+(H+1)*O.
The only data division option that makes sense for future prediction with constant timesteps is DIVIDEBLOCK!
You might want to start easy using TIMEDELAYNET, NARNET and/or a reduced number of input and output dimensions.
Practice datasets are found using
help nndatasets
doc nndatasets
Please search BOTH the NEWSGROUP & ANSWERS using
greg nncorr narxnet
and see how I estimate the significant correlation lags from the data & Random zero-mean/unit-variance Gaussian Noise of the same length, N.
Consult the posts in reverse chronological order.
HOWEVER, Including the VAL and TEST subsets by using N will optimistically bias your performance results. THEREFORE, ONLY USE THE TRAINING SUBSET OF LENGTH Ntrn to estimate the significant delays!
The form of NNCORR that agrees with the fft of the TRAINING SUBSET POWER SPECTRUM is
crosscorxttrn = nncorr(zxtrn,zttrn,Ntrn-1,'biased');
autocorrttrn = nncorr(zttrn,zttrn,Ntrn-1,'biased');
where
zxtrn = zscore(xtrn',1)';
zttrn = zscore(ttrn',1)';
Are you using TRAINBR because N is not sufficiently large?
Hope this helps.
Greg
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Modeling and Prediction with NARX and Time-Delay Networks에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!