how can use static feedforward neural network to predict futre observation
古いコメントを表示
As newff the appropriate choice or we must use others functions like feedforwardnet???
採用された回答
その他の回答 (2 件)
Greg Heath
2015 年 6 月 30 日
Use one of these
help nndatasets (Also see : doc nndatasets)
Single time-series prediction involves predicting the next value of a time-series given its past values.
simplenar_dataset - Simple single series prediction dataset.
chickenpox_dataset - Monthly chickenpox instances dataset.
ice_dataset - Gobal ice volume dataset.
laser_dataset - Chaotic far-infrared laser dataset.
oil_dataset - Monthly oil price dataset.
river_dataset - River flow dataset.
solar_dataset - Sunspot activity dataset
Unlike the datasets for FITNET, PATTERNNET and NARXNET, I have not posted these NARNET data set sizes in the NEWSGROUP.
Word to the wise:
ALWAYS begin using ALL of the defaults. This will simplify your code so much that you will think that you know what you are doing. To see what I mean see the documentation examples at
help fitnet % default H = 10
doc fitnet
and
help narnet % defaults FD = 1:2, H = 10
doc narnet
TYPICALLY, the only default you may have to change is, H, the number of hidden nodes!
However, if that doesn't work you may have to
1. Design 10 or more nets to mitigate unfortunate choices of random initial weights and random data divisions.
2. Determine the statistically significant lags from the target autocorrelation function as I have posted in the NEWSGROUP.
Hope this helps
If you want to accept this answer instead of the previous one, I don't mind
Greg
Greg Heath
2015 年 7 月 2 日
If you want to use the static net FITNET to predict d timesteps ahead of a single N timestep timeseries, use defaults and double ( NOT CELL ) variables
input = data( 1:N-d); % No transpose;
target = data( 1+d : N );
MSE00 = var(target',1) % Reference MSE
net = fitnet; % default H = 10
net.divideParam.valRatio = 10/100;
net.divideParam.testRatio = 20/100;
[net tr output error ] = train(net, input, target);
%output = net(input); error = target - output;
NMSE = mse(error)/MSE00 % Range [ 0 1 ]
R2 = 1- NMSE
% Rsquared = fraction of target variance modeled by the net
Hope this helps.
Greg
11 件のコメント
coqui
2015 年 7 月 2 日
Greg Heath
2015 年 7 月 3 日
yes
coqui
2015 年 7 月 3 日
coqui
2015 年 7 月 3 日
coqui
2015 年 7 月 3 日
coqui
2015 年 7 月 3 日
coqui
2015 年 7 月 3 日
Greg Heath
2015 年 7 月 3 日
> NMSE=0.3943 and R2=0.6057.
I get very similar results from 10 trials: 0.568(thrice),0.602 (thrice),0.604(once)&0.611(thrice).
After looking at the plot of data I'm not surprised.
There is no reason why NARNET will be any better than fitnet.
Timedelaynet and Narxnet are for separate inputs and outputs.
Next, consider increasing the number of lags and hidden nodes.
Ntrneq ~ 0.7*3263 ~ 2283 No. training equations
Nw ~ (1+1+1)*10+11*1 = 41 unknown weights
Ntrneq can easily support a factor of 50 increase in weights.
Hope this helps.
Greg
coqui
2015 年 7 月 5 日
Greg Heath
2015 年 7 月 6 日
I think that using narnet is better than usin fitnet for timeseries because you can close the loop and predict well beyond the time of the target.
Greg Heath
2016 年 9 月 8 日
What dataset was used?
Greg
カテゴリ
ヘルプ センター および File Exchange で Deep Learning Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!