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.
libsvm_options : A string of testing options in the same format as that of LIBSVM.
libsvm_options :
-s : svm_type; set type of SVM (default 0)
| 0 | C-SVC (multi-class classification) | |
| 1 | nu-SVC (multi-class classification) | |
| 2 | one-class SVM | |
| 3 | epsilon-SVR (regression) | |
| 4 | nu-SVR (regression) |
-t : kernel_type; set type of kernel function (default 2)
| 0 | linear: u’*v | |
| 1 | polynomial: (gamma × u' × v + coef0) ^ degree | |
| 2 | radial basis function: exp(-gamma × |u-v| ^ 2) | |
| 3 | sigmoid: tanh(gamma × u' × v + coef0) | |
| 4 | precomputed 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