matlab - Cross Validation Using libsvm -


i performing 5 - fold cross validation using code :

%# read training data [labels,data] = libsvmread('training_data_libsvmformat.txt');  %# grid of parameters folds = 5;  [c,gamma] = meshgrid(-5:2:15, -15:2:3)  %coarse grid search: bestc = 8 bestgamma = 2 %[c,gamma] = meshgrid(1:0.5:4, -1:0.25:3) %fine grid search: bestc = 4 bestgamma = 2  %# grid search, , cross-validation cv_acc = zeros(numel(c),1); i=1:numel(c)     cv_acc(i) = svmtrain(labels, data, sprintf('-c %f -g %f -v %d', 2^c(i), 2^gamma(i), folds)); end  %# pair (c,gamma) best accuracy [~,idx] = max(cv_acc);  %# contour plot of paramter selection contour(c, gamma, reshape(cv_acc,size(c))), colorbar hold on plot(c(idx), gamma(idx), 'rx') text(c(idx), gamma(idx), sprintf('acc = %.2f %%',cv_acc(idx)), 'horizontalalign','left', 'verticalalign','top') hold off xlabel('log_2(c)'), ylabel('log_2(\gamma)'), title('cross-validation accuracy')  %# can train model using best_c , best_gamma best_c = 2^c(idx); best_gamma = 2^gamma(idx); 

now, know in 5 fold cross validation, 4/5 of dataset used training , 1/5 testing , time changing testing part obtain best cross c , gamma rbf. however, in dataset 1st 1000 examples positive while last 3000 negative. cross validation using svmtrain() shuffle data or may case 1/5 testing contains negative examples please? asking question if not shuffle data, accuracy not realistic.

i appreciate assistance.


Popular posts from this blog