Description Details Known issues Author(s) References See Also Examples
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:
fully integrated hyper-parameter selection,
extreme speed on both small and large data sets,
full flexibility for experts, and
inclusion of a variety of different learning scenarios:
multi-class classification, ROC, and Neyman-Pearson learning, and
least-squares, quantile, and expectile regression
Further information is available in the following vignettes:
demo | liquidSVM Demo (source, pdf) |
documentation | liquidSVM Documentation (source, pdf) |
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.
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
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
http://www.isa.uni-stuttgart.de
init.liquidSVM
, trainSVMs
, predict.liquidSVM
, clean.liquidSVM
, and test.liquidSVM
, Configuration;
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)
|
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
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.