Categories &

Functions List

Function Reference: svmtrain

statistics: model = svmtrain (labels, data, "libsvm_options")

statistics: model = svmtrain (labels, data, "libsvm_options", weights)

statistics: [model, converged] = svmtrain (…)

This function trains an SVM model based on known labels and their corresponding data which comprise an instance matrix.

  • labels : An m by 1 vector of prediction labels. (type must be double)
  • data : An m by n matrix of m testing instances with n features. It can be dense or sparse. (type must be double)
  • libsvm_options : A string of testing options in the same format as that of LIBSVM.
  • weights : An m by 1 vector of nonnegative instance weights, one per instance. Each scales the box constraint C of its instance, and an instance of zero weight is left out of the training. (type must be double)

libsvm_options :

  • -s : svm_type; set type of SVM (default 0)
0C-SVC (multi-class classification)
1nu-SVC (multi-class classification)
2one-class SVM
3epsilon-SVR (regression)
4nu-SVR (regression)
  • -t : kernel_type; set type of kernel function (default 2)
0linear: u’*v
1polynomial: (gamma × u' × v + coef0) ^ degree
2radial basis function: exp(-gamma × |u-v| ^ 2)
3sigmoid: tanh(gamma × u' × v + coef0)
4precomputed kernel (kernel values in training_instance_matrix)
  • -d : degree; set degree in kernel function (default 3)
  • -g : gamma; set gamma in kernel function (default 1/num_features)
  • -r : coef0; set coef0 in kernel function (default 0)
  • -c : cost; set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)
  • -n : nu; set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)
  • -p : epsilon; set the epsilon in loss function of epsilon-SVR (default 0.1)
  • -m : cachesize; set cache memory size in MB (default 100)
  • -e : epsilon; set tolerance of termination criterion (default 0.001)
  • -h : shrinking; whether to use the shrinking heuristics, 0 or 1 (default 1)
  • -b : probability_estimates; whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)
  • -w : weight; set the parameter C of class i to weight*C, for C-SVC (default 1)
  • -v : n; n-fold cross validation mode
  • -q : quiet mode (no outputs)

The function svmtrain function returns a model structure which can be used for future prediction and it contains the following fields:

  • Parameters : parameters
  • nr_class : number of classes; = 2 for regression/one-class svm
  • totalSV : total #SV
  • rho : -b of the decision function(s) wx+b
  • Label : label of each class; empty for regression/one-class SVM
  • sv_indices : values in [1,...,num_training_data] to indicate SVs in the training set
  • ProbA : pairwise probability information; empty if -b 0 or in one-class SVM
  • ProbB : pairwise probability information; empty if -b 0 or in one-class SVM
  • ProbDensityMarks : density marks for one-class SVM probability estimates; empty if -b 0 or not one-class SVM.
  • nSV : number of SVs for each class; empty for regression/one-class SVM
  • sv_coef : coefficients for SVs in decision functions
  • SVs : support vectors

If you do not use the option -b 1, ProbA and ProbB are empty matrices. If the ’-v’ option is specified, cross validation is conducted and the returned model is just a scalar: cross-validation accuracy for classification and mean-squared error for regression.

The optional output converged is false when any solver run stopped at its iteration limit before meeting the tolerance, and true otherwise.

Note on LIBSVM 3.36 Update: This implementation is based on LIBSVM 3.36 (2025) and now supports probability estimates for One-Class SVM (-s 2) when combined with the probability flag (-b 1). For One-Class SVM, the prob_estimates output is a single column vector containing the probability of the instance being an inlier.

Source Code: svmtrain