do_binary_cross_validation.m 824 B

123456789101112131415161718192021222324252627
  1. function f_accuracy = do_binary_cross_validation(y, x, param, nr_fold)
  2. len = length(y);
  3. rand_ind = randperm(len);
  4. dec_values = [];
  5. labels = [];
  6. % Cross training : folding
  7. for i = 1:nr_fold
  8. test_ind = rand_ind([floor((i-1)*len/nr_fold)+1:floor(i*len/nr_fold)]');
  9. train_ind = [1:len]';
  10. train_ind(test_ind) = [];
  11. model = train(y(train_ind),x(train_ind,:),param);
  12. [pred, acc, dec] = predict(y(test_ind),x(test_ind,:),model,'-q');
  13. if model.Label(1) < 0;
  14. dec = dec * -1;
  15. end
  16. dec_values = vertcat(dec_values, dec);
  17. labels = vertcat(labels, y(test_ind));
  18. end
  19. % final evaluation
  20. f_accuracy = validation_function(dec_values, labels);
  21. disp(sprintf('Cross Validation: %f', f_accuracy));
  22. end