MATLAB Answers

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

11 views (last 30 days)
Cianetti Federico
Cianetti Federico on 24 Feb 2020
Commented: Torsten K on 15 Oct 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.

  2 Comments

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
Torsten K
Torsten K on 15 Oct 2020
Hello Matlab-Experts,
I have the exact same problem. It is not clear to me how to split a collection of 100 different time series into a training set, a validation set and a test set without tearing the time series apart. That is, I want to use 70 out of 100 time series for training and another 15 out of 100 time series each for validation and testing. How can I program this in Matlab?
I would be very grateful if you could give me a hint!
Best regards
Torsten

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!