Training Neural Network on Discontinuous Timeseries

1 view (last 30 days)
I'm trying to build multilayer feedforward network for timeseries forecasting.
These are my current available data: * Dataset #1: Feb - Apr * Dataset #2: June - Sept * Dataset #3: Oct - Dec
I have successfully built a NN based on Dataset #1, however, I wish to increase the accuracy of my network prediction by expanding the training to include dataset 1-3.
Would it be safe to append all datasets into a single martix, given that they are disconnected in time? (i,e MATRIX(1:60,:) --> dataset #1, MATRIX(61:181,:) --> dataset #2, MATRIX(182:272,:) --> dataset #3)
Or can I simply retrain my neural network three times by repeating the training line in the code, each time with a different dataset input/output? (Example in the code below)
%Create MLP Network
MLPNetwork=feedforwardnet(i,'trainlm');
MLPNetwork.trainparam.min_grad = 0.00000001;
MLPNetwork.trainParam.epochs = 10000;
MLPNetwork.trainParam.lr = 0.01;
%MLPNetwork.trainParam.max_fail =100;
MLPNetwork.divideParam.trainRatio = 70/100;
MLPNetwork.divideParam.valRatio = 15/100;
MLPNetwork.divideParam.testRatio = 15/100;
MLPNetwork=train(MLPNetwork,dataset1_input,dataset1_output);
MLPNetwork=train(MLPNetwork,dataset2_input,dataset2_output);
MLPNetwork=train(MLPNetwork,dataset3_input,dataset3_output);
%simulation%
Simulation_1=MLPNetwork(dataset1_input)
performance_1 = perform(dataset1_output,Simulation_1)
Simulation_2=MLPNetwork(dataset2_input)
performance_2 = perform(dataset2_output,Simulation_2)
Simulation_3=MLPNetwork(dataset1_input)
performance_3 = perform(dataset3_output,Simulation_3)
Little background on the nature of the datasets: The inputs are hourly weather data (Atmospheric pressure, wind speed.. etc) and the output is hourly water level. Hence datasets from different seasons are important.
Many thanks.
  5 Comments
Nada Almarshad
Nada Almarshad on 21 Jul 2019
Edited: Nada Almarshad on 21 Jul 2019
Hi Christopher.
Regarding your data, does the output y(t) take x(t), x(t-1)... and x(t-10) as an input? Or is it a direct relationship, such that x(t) produces y(t), x(t-1) gives y(t-1) and so on.
Greg Heath
Greg Heath on 21 Jul 2019
Edited: Greg Heath on 21 Jul 2019
Nada,
The "direct relationship" you have described is not a timeseries configuration.
Hope this helps.
Greg

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!