How can I do a 80-20 split on datasets to obtain training and test datasets?
22 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Chidiebere Ike
le 15 Mar 2018
Commenté : Prasobhkumar P. P.
le 7 Nov 2020
I tried [training, test] = partition (faceDatabase, [0.8, 0.2]); but it gives me error. Can anyone help? Are there ways to do this manually? I can't find a function for this!
2 commentaires
Réponse acceptée
KSSV
le 15 Mar 2018
Let P and T be your input and target sets.
PD = 0.80 ; % percentage 80%
Ptrain = P(1:round(PD*length(T)),:) ; Ttrain = T(1:round(PD*length(T))) ;
Ptest = P(round(PD*length(T)):end,:) ;Ttest = T(round(PD*length(T)):end) ;
2 commentaires
Plus de réponses (2)
Akira Agata
le 15 Mar 2018
Modifié(e) : Akira Agata
le 15 Mar 2018
If you want to randomly select 80% of your data as training dataset, please try following:
PD = 0.80 ; % percentage 80%
% Let P be your N-by-M input dataset
% Solution-1 (need Statistics & ML Toolbox)
cv = cvpartition(size(P,1),'HoldOut',PD);
Ptrain = P(cv.training,:);
Ptest = P(cv.test,:);
Another possible solution:
% Solution-2 (using basic MATLAB function)
N = size(P,1);
idx = randperm(N);
Ptrain = P(idx(1:round(N*PD)),:);
Ptest = P(idx(round(N*PD)+1:end),:);
Munshida P
le 14 Jan 2020
This will help you.
[training,test] = partition(faceDatabase,[0.8 0.2]);
0 commentaires
Voir également
Catégories
En savoir plus sur Text Analytics Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!