About net.divideParaM.valRatio
조회 수: 30 (최근 30일)
이전 댓글 표시
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
답변 (2개)
Greg Heath
2018년 9월 23일
편집: Greg Heath
2018년 9월 23일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Sequence and Numeric Feature Data Workflows에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!