Train one NARX network to predict an output, but using multiple sets of time series data gathered in separate runs (each one consists of adjusting a different variable and observing the system output)

4 views (last 30 days)
I've got a system I am trying to model, and the data I have consists of separate runs where specific parameters are changed over the course of each run (e.g. variable 1 is slowly changed throughout run 1, variable 2 is slowly changed throughout run 2, etc).
I am trying to predict the output for one variable based on the changes seen in variable 1, 2, etc. over time, but because train automatically reinitializes the weights, it appears as though I cannot simply train the network on run1, then on run 2, etc. However, because there are significant time delays in the system, I also cannot really just append run 2 onto run 1 etc (I am currently using many lagged values as input to account for the transport delays in the system). Is there some way to train the network on all of the separate data runs I have?
I am also not sure whether I should really be using train here or adapt. I understand that train disregards order and thus seems unsuitable for time-series prediction, but then I am confused as to why it is the default for narxnet.
Anyway, any help/insight would be much appreciated.
  1 Comment
Greg Heath
Greg Heath on 13 Jul 2015
Edited: Greg Heath on 13 Jul 2015
[ I N ] = size(input) = ?
[ O N ] = size(target) = ?
FD = ? % Significant delays of the target autocorrelation function.
ID = ? % Significant delays of the input/target cross-correlation functions?
H = ? How many hidden layer nodes?
How many series do you have to work with ?
In the latest versions of MATLAB
1. Train only reinitializes weights when all weights are zero.
2. Train does not disregard order for time-series functions.
However the default data division function is dividerand
which yields nonconstant differences between time points.
Therefore, use divideblock or one of the other dividefunctions.
3. I do not recommend using ADAPT
4. Have you tried appending one series to another?
Hope this helps.
Greg

Sign in to comment.

Accepted Answer

Greg Heath
Greg Heath on 5 Nov 2013
Sorry, but you have to train nets with input/output pairs similar to the ones that they will encounter when deployed.
  8 Comments
Imola Fodor
Imola Fodor on 7 Jan 2021
Edited: Imola Fodor on 7 Jan 2021
catsamples with the 'pad' for some reason doesnt work
Data argument dimensions are not consistent.
Federico Alberto Gorrini
Federico Alberto Gorrini on 7 Jan 2021
@Torsten K can you tell me exactly in which format did you introduced each time serie? Because I have a similar problem, with 15 time series, and my problem has 3 inputs and 4 outputs...

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!