liquidSVM-package: liquidSVM for R

Description Details Known issues Author(s) References See Also Examples

Description

Support vector machines (SVMs) and related kernel-based learning algorithms are a well-known class of machine learning algorithms, for non-parametric classification and regression. liquidSVM is an implementation of SVMs whose key features are:

Further information is available in the following vignettes:

demo liquidSVM Demo (source, pdf)
documentation liquidSVM Documentation (source, pdf)

Details

In liquidSVM an application cycle is divided into a training phase, in which various SVM models are created and validated, a selection phase, in which the SVM models that best satisfy a certain criterion are selected, and a test phase, in which the selected models are applied to test data. These three phases are based upon several components, which can be freely combined using different components: solvers, hyper-parameter selection, working sets. All of these can be configured (see Configuration) a

For instance multi-class classification with k labels has to be delegated to several binary classifications called tasks either using all-vs-all (k(k-1)/2 tasks on the corresponding subsets) or one-vs-all (k tasks on the full data set). Every task can be split into cells in order to handle larger data sets (for example >10000 samples). Now for every task and every cell, several folds are created to enable cross-validated hyper-parameter selection.

The following learning scenarios can be used out of the box:

mcSVM

binary and multi-class classification

lsSVM

least squares regression

nplSVM

Neyman-Pearson learning to classify with a specified rate on one type of error

rocSVM

Receivert Operating Characteristic (ROC) curve to solve multiple weighted binary classification problems.

qtSVM

quantile regression

exSVM

expectile regression

bsSVM

bootstrapping

To calculate kernel matrices as used by the SVM we also provide for convenience the function kern.

liquidSVM can benefit heavily from native compilation, hence we recommend to (re-)install it using the information provided in the installation section of the documentation vignette.

Known issues

Interruption (Ctrl-C) of running train/select/test phases is honored, but can leave the C++ library in an inconsistent state, so that it is better to save your work and restart your R session.

liquidSVM is multi-threaded and is difficult to be multi-threaded externally, see documentation

Author(s)

Ingo Steinwart ingo.steinwart@mathematik.uni-stuttgart.de, Philipp Thomann philipp.thomann@mathematik.uni-stuttgart.de

Maintainer: Philipp Thomann philipp.thomann@mathematik.uni-stuttgart.de

References

http://www.isa.uni-stuttgart.de

See Also

init.liquidSVM, trainSVMs, predict.liquidSVM, clean.liquidSVM, and test.liquidSVM, Configuration;

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
## Not run: 
set.seed(123)
## Multiclass classification
modelIris <- svm(Species ~ ., iris)
y <- predict(modelIris, iris)

## Least Squares
modelTrees <- svm(Height ~ Girth + Volume, trees)
y <- predict(modelTrees, trees)
plot(trees$Height, y)
test(modelTrees, trees)

## Quantile regression
modelTrees <- qtSVM(Height ~ Girth + Volume, trees, scale=TRUE)
y <- predict(modelTrees, trees)

## ROC curve
modelWarpbreaks <- rocSVM(wool ~ ., warpbreaks, scale=TRUE)
y <- test(modelWarpbreaks, warpbreaks)
plotROC(y,warpbreaks$wool)

## End(Not run)

Example output

Warning message:
In (function (model, command.args = NULL, ..., d = NULL, warn.suboptimal = getOption("liquidSVM.warn.suboptimal",  :
  Solution may not be optimal: try training again using max_gamma=25
 [1] 69.33382 65.68820 63.56606 72.82774 79.42021 80.58828 67.75908 74.57083
 [9] 80.27424 75.93240 79.15608 75.37527 75.82245 73.01862 72.76485 73.31706
[17] 85.24114 81.74754 70.94545 66.12462 79.26763 78.06246 74.97029 73.15821
[25] 76.55061 81.11930 81.31856 80.36629 79.61853 79.44791 86.57212
attr(,"errors")
     val_error pos_val_error neg_val_error
[1,]  2.202147            -1            -1

liquidSVM documentation built on Sept. 15, 2019, 1:02 a.m.