MATLAB Answers


use of train and test data

Asked by Elahe Karimi on 18 May 2019
Latest activity Edited by Elahe Karimi on 18 May 2019
I've used this code to separate data to test and train .for example i have a dataset include of 6 image. when i run this code, training data is correct and have 3 image but testing data is like this image :(The third image is repeated again).
I can't understand what is the problem .
Please help me
thank you
idx = 1:numImageFiles ;
PTrain = 0.50 ;
Ptest = 0.50;
train_idx = baseFileNames(1:round(PTrain*numImageFiles)); % training indices
test_idx = baseFileNames(round(Ptest*numImageFiles):end,:) ; %test


Sign in to comment.

1 Answer

Answer by Walter Roberson
on 18 May 2019
 Accepted Answer

You use round(PTrain*numImageFiles) as the upper limit for train_idx, and you use the same round(PTrain*numImageFiles) as the lower limit for test_idx . That is going to include round(PTrain*numImageFiles) exactly in both train_idx and test_idx .


I deleted the (round) but it's still the same. Maybe please give me more advice.
thank you so much
Walter Roberson
on 18 May 2019
The round is not the problem. Consider you are doing the equivalent of
x(1:3) %index 1, 2, 3
x(3:6) %index 3, 4, 5, 6
When your first range ends at N, then your second range needs to start from at least one greater than N or else you will have overlap.
ok,I understood. Thank you very much for response.

Sign in to comment.