MATLAB Answers

0

Unable to predict data well enough

Asked by Gulrukh Turabee on 11 Nov 2019 at 16:26
Latest activity Edited by John D'Errico
on 11 Nov 2019 at 21:59
Accepted Answer by ME
Hi,
I have a dataset of 19 non linear regression data points. I am training the first 10 and trying to predict the next 9 values using different Neural Network. However, after trying out mulitple Neural Networks such as Radial Basis Function, Baysian Reguralization BackPropogation, Function Fitting Neural Network and LSTM, i am still not getting good prediction results. I have attached the data where X is the input and Y is the output. First 10 data points are being used for training and next 9 points are used for testing. I have also attached by code which uses Baysian Regularization backpropogation.
Attached is the dataset link :
The results obtained using Baysian Regularization backpropogation are shown in graph attached below :
The code used is as follows:
close all;
clear all;
rng('default');
out_col = 2;
inp_col = 1;
data= xlsread('Neww_BRP.xlsx');
n = 7;
Neurons = 5;
X_Train=data(i:n,inp_col);
Y_Train=data(i:n,out_col);
XValidation = data(n+1,inp_col);
net = feedforwardnet(Neurons,'trainbr');
[net,tr] = train(net,X_Train',Y_Train');
y = net(XValidation')';
Kindly let me know how can i improve the prediction results?
Thank you.

  0 Comments

Sign in to comment.

2 Answers

Answer by ME
on 11 Nov 2019 at 16:36
 Accepted Answer

I am far from an expert in this area but I'd guess that you are struggling to get a good preciction because you don't have enough data points to train your network properly.

  2 Comments

Hi,
thank you for your answer.I have seen some research papers, where only 6 to 7 data points are being taken for training, still they are getting good prediction results. I doubt this is the issue.
ME
on 11 Nov 2019 at 20:51
Have you tried using a random sample of you data points to train the network rather than just using the first ten? That way your training data will likely cover a greater range of the behaviour seen in your data set and perhaps improve the predictive ability of your trained networks.

Sign in to comment.


Answer by John D'Errico
on 11 Nov 2019 at 21:57
Edited by John D'Errico
on 11 Nov 2019 at 21:59

I would point out that your code shows you using the first SEVEN data points, not the first 10, despite your claim otherwise.
n = 7;
As well, since those first two points are completely inconsistent with the rest of your data, I'd expect to see a serious problem in any intelligent long term extrapolation. You gave it 7 data points, and 28% of your data was completely useless crapola. Just because someone else had success does not mean that your data is as good as theirs.
I would instead, suggest that you really try using the first 10 data points. Better yet, try using points 3:10 to train the net. Then see how well prediction actually proceeds for points 11-19.
Remember that extrapolation is always a risky business, prone to failure. If it was always so easy to do, then we would always have perfectly accurate weather forecasts.

  0 Comments

Sign in to comment.