MATLAB Answers

NARX neural network - how to use different time series for train, validation and testing the network?

6 views (last 30 days)
Cianetti Federico
Cianetti Federico on 24 Feb 2020
Commented: Cianetti Federico on 28 Feb 2020
Dear Matlab experts, actually I'm using Deep Learning Toolbox to create a Narx network to predict the dynamic response of a part of an internal combustion engine. I'm using 'catsamples' to use different data acquisition for train the network whith a complete DoE, but I have a problem:
I would like to use all these acquisitions to train the network, and take a separate acquisition for validation and testing without using 'divideblock'. It's possible to do that?
Furthermore, I'm using 'trainlm' and 'divideblock' (80/10/10) to divide the dataset into train/validation/test data, but I have not understood how this division works with multiple acquisition (catsasamples).
I'd really appreciate anyone who can help me.
Federico

  0 Comments

Sign in to comment.

Answers (1)

Vimal Rathod
Vimal Rathod on 28 Feb 2020
Firstly, You can train the model without using divideblock and supply your own testing and validation data(It is not a compulsion). To answer your second question, "divideblock" divides the data into set of blocks of indices (which is serial not random). To generate take samples randomly you could use dividerand. You could use divideint to use interleaved indices for training,testing and validation.

  1 Comment

Cianetti Federico
Cianetti Federico on 28 Feb 2020
Thanks Vimal for the answer,
I understand what you're saying but my question is just how to train the network without using divideblocks (or dividerand/ind), I would like to choose which time series are for training and which are for testing and validation.
To improve the performance of the NN i'm doing 2 steps of training, the first one in openloop and the second one in closed loop form, do you think it's a correct approach?
Thanks

Sign in to comment.