1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- function svmmodel = liblinear_train_regression ( labels, feat, settings )
- %
- % BRIEF
- % A simple wrapper to provide training of regression for LIBLINEAR. No
- % further settings are adjustable currently.
- %
- % INPUT
- % labels -- labels (#sample x 1)
- % feat -- features for training images (#samples x # dimensions)
- % settings -- struct for configuring the svm model training, e.g., via
- % 'b_verbose', 'f_svm_C', ...
- %
- % OUTPUT:
- % svmmodel -- resulting model
- %
- % date: 30-04-2014 ( dd-mm-yyyy )
- % last modified: 22-10-2015
- % author: Alexander Freytag, Christoph Käding
- if ( nargin < 3 )
- settings = [];
- end
-
-
- libsvm_options = '';
-
- % outputs for training
- if ( ~ getFieldWithDefault ( settings, 'b_verbose', false ) )
- libsvm_options = sprintf('%s -q', libsvm_options);
- end
-
- % cost parameter
- f_svm_C = getFieldWithDefault ( settings, 'f_svm_C', 1);
- libsvm_options = sprintf('%s -c %f', libsvm_options, f_svm_C);
-
- % do we want to use an offset for the hyperplane?
- if ( getFieldWithDefault ( settings, 'b_addOffset', false) )
- libsvm_options = sprintf('%s -B 1', libsvm_options);
- end
-
- % add multithreading
- % NOTE: - requires liblinear-multicore
- % - supports only -s 0, -s 2, or -s 11 (so far)
- i_numThreads = getFieldWithDefault ( settings, 'i_numThreads', 1);
- if i_numThreads > 1
- libsvm_options = sprintf('%s -n %d', libsvm_options, i_numThreads);
- end
-
- % which solver to use
- % copied from the liblinear manual:
- % for regression
- % 11 -- L2-regularized L2-loss support vector regression (primal)
- % 12 -- L2-regularized L2-loss support vector regression (dual)
- % 13 -- L2-regularized L1-loss support vector regression (dual)
- i_svmSolver = getFieldWithDefault ( settings, 'i_svmSolver', 11);
- libsvm_options = sprintf('%s -s %d', libsvm_options, i_svmSolver);
- %# train regression model
-
- svmmodel = train( labels, feat, libsvm_options );
-
- end
|