About net.divideParaM.valRatio
30 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (2)
Greg Heath
el 23 de Sept. de 2018
Editada: Greg Heath
el 23 de Sept. de 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 comentarios
mike mike
el 23 de Sept. de 2018
2 comentarios
Greg Heath
el 26 de Sept. de 2018
The question is:
Do you understand the purpose of the validation subset?
Greg
Ver también
Categorías
Más información sobre Sequence and Numeric Feature Data Workflows en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!