Matlab libsvm svmpredict准确性详细

jes*_*ica 0 matlab verbose libsvm

我有一个恼人的事实问题.我正在使用libsvm和matlab,我能够预测使用:

predicted_label = svmpredict(Ylabel, Xlabel, model);
Run Code Online (Sandbox Code Playgroud)

但每次我做出预测时都会出现这样的情况:

Accuracy = X% (y/n) (classification)
Run Code Online (Sandbox Code Playgroud)

我发现这很烦人,因为我重复这个过程很多次也因为它在屏幕上显示而变慢.

我想我想要的是避免svmpredict冗长.

谁能帮我这个?提前致谢.

-Jessica

Phi*_*oso 7

我发现比编辑c库的源代码更好的方法是使用matlabs evalc将任何输出放到第一个输出参数.

[~ predicted_label] = evalc('svmpredict(Ylabel, Xlabel, model)');
Run Code Online (Sandbox Code Playgroud)

因为要评估的字符串是固定的,所以应该没有性能降低.


isa*_*son 6

svmpredict(Ylabel, Xlabel, model, '-q');
Run Code Online (Sandbox Code Playgroud)

从手册:

Usage: [predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(testing_label_vector, testing_instance_matrix, model, 'libsvm_options')
       [predicted_label] = svmpredict(testing_label_vector, testing_instance_matrix, model, 'libsvm_options')
Parameters:
  model: SVM model structure from svmtrain.
  libsvm_options:
    -b probability_estimates: whether to predict probability estimates, 0 or 1 (default 0); one-class SVM not supported yet
    -q : quiet mode (no outputs)
Run Code Online (Sandbox Code Playgroud)