MATLAB Answers

Unable to predict data well enough

11 ビュー (過去 30 日間)
Gulrukh Turabee
Gulrukh Turabee 2019 年 11 月 11 日
Edited: John D'Errico 2019 年 11 月 11 日
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 件のコメント

サインイン to comment.

採用された回答

ME
ME 2019 年 11 月 11 日
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 件のコメント

Gulrukh Turabee
Gulrukh Turabee 2019 年 11 月 11 日
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
ME 2019 年 11 月 11 日
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.

サインイン to comment.

More Answers (1)

John D'Errico
John D'Errico 2019 年 11 月 11 日
編集済み: John D'Errico 2019 年 11 月 11 日
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 件のコメント

サインイン to comment.

サインイン してこの質問に回答します。


Translated by