About net.divideParaM.valRatio
30 views (last 30 days)
Show older comments
I know it's possible to use
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
to divide the percentage of data into inputs for training, testing and validation. Now, in a classification problem, I didn't want the validation to be too low and I set
net.divideParam.valRatio = 0/100;
In fact, the neural network seemed not to use early stopping after 6 iterations of validation; by chance, I left the other parameters unchanged and so, in the code I wrote,
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio =0/100;
net.divideParam.testRatio = 15/100;
When the sum of the percentages of data distribution between training, testing and validation did not make 100% but the neural network runs the same without giving problems and without appearing error messages. I have done other tests modifying the percentages always so that it did not do 100 % as in the following cases:
net.divideParam.trainRatio = 35/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 25/100;
or
net.divideParam.trainRatio = 35/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 65/100;
my question is how to interpret the subdivision of the dataset between validation, test and training when the sum is not 100% and/or some data is set to 0%. If, for example, I put the training data at 0%, does this mean that the network is not being trained? Or if I put the test data at 0%, does it mean that the network is not being tested? And if the data distribution is greater than 100% does that mean that the remaining % of the inputs of the dataset is not used? And if the percentage distribution of the data is greater than 100% does this mean that some input is used both for the test and also, for example, for the validation?
0 Comments
Answers (2)
Greg Heath
on 23 Sep 2018
Edited: Greg Heath
on 23 Sep 2018
1. Now, in a classification problem, I didn't want the validation to be too low and I set
net.divideParam.valRatio = 0/100;
% Your statement makes no sense: You have
eliminated the val subset!
2. In fact, the neural network seemed not to use early stopping after 6 iterations of validation;
% Of course! valRatio = 0 eliminates the val subset!
3. In fact, the neural network seemed not to use early stopping after 6 iterations of validation; by chance, I left the other parameters unchanged and so, in the code I wrote,
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 0/100;
net.divideParam.testRatio = 15/100;
% The progam will AUTOMATICALLY CHANGE the fractions to have
a unit sum. To find out what they are use
a = net.divideParam.trainRatio
b = net.divideParam.valRatio
c = net.divideParam.testRatio
4. my question is how to interpret the subdivision of the dataset between validation, test and training when the sum is not 100% and/or some data is set to 0%. If, for example, I put the training data at 0%, does this mean that the network is not being trained? Or if I put the test data at 0%, does it mean that the network is not being tested? And if the data distribution is greater than 100% does that mean that the remaining % of the inputs of the dataset is not used? And if the percentage distribution of the data is greater than 100% does this mean that some input is used both for the test and also, for example, for the validation?
See my answer to question 3.
Hope this helps.
%%Thank you for formally accepting my answer%%
Greg
0 Comments
mike mike
on 23 Sep 2018
2 Comments
Greg Heath
on 26 Sep 2018
The question is:
Do you understand the purpose of the validation subset?
Greg
See Also
Categories
Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!