-
Notifications
You must be signed in to change notification settings - Fork 17
/
classf_svm_tr.m
59 lines (54 loc) · 2.3 KB
/
classf_svm_tr.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function [model] = classf_svm_tr(X,Y,param)
%Train an SVM classfier.
% A wrapper of svmtrain in libsvm.
% X : each row is a sample. Better be zscored.
% Y : a column vector, class labels for X starting from 1.
% PARAM: struct of parameters. The beginning part of this code (before
% defParam) explains each parameter, and also sets the default parameters.
% You can change parameter p to x by setting PARAM.p = x. For parameters
% that are not set, default values will be used.
% Return:
% MODEL: a struct returned by SVMTRAIN in libsvm
%
% Dependency: libsvm toolbox
%
% Note: there is a function named svmtrain in both Matlab and libsvm. If
% one intends to use libsvm, one should config its path to be prior
%
% Ke YAN, 2016, Tsinghua Univ. http://yanke23.com, xjed09@gmail.com
% see the intro of libsvm at the bottom of this code.
% Can add more parameters based on the kernel used
t = 0;
c = 1;
g = 0;
defParam
type = sprintf('-s 0 -t %d -c %f -g %f -q -b 1',t,c,g);
model = svmtrain(Y, X, type);
end
%{
-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_set_file)
-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)
-wi 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)
%}