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,
- Bindings for R, Python, MATLAB / Octave, Java, and Spark,
- full flexibility for experts, and
- inclusion of a variety of different learning scenarios:
- multi-class classification, ROC, and Neyman-Pearson learning,
- least-squares, quantile, and expectile regression.
For questions and comments just contact us via mail. There you also can ask to be registerd to our mailing list.
Command Line interface
Installation instructions for the command line versions.
|Terminal version for Linux/OS X||liquidSVM.tar.gz|
|Terminal version for Windows (64bit)||avx2: liquidSVM.zip|
|Previous versions||v1.1 (June 2016), v1.0 (January 2016)|
On Linux and Mac on the terminal
liquidSVM can be used in the following way:
wget www.isa.uni-stuttgart.de/software/liquidSVM.tar.gz tar xzf liquidSVM.tar.gz cd liquidSVM make all scripts/mc-svm.sh banana-mc 1 2
An easy usage is:
install.packages("liquidSVM") library(liquidSVM) banana <- liquidData('banana-mc') model <- mcSVM( Y~. , banana$train, display=1, threads=2) result <- test(model, banana$test) errors(result)
To install use:
pip install --user liquidSVM
and then in Python you can use it e.g. like:
from liquidSVM import * banana = LiquidData('banana-mc') model = mcSVM(banana.train, display=1, threads=2) result, err = model.test(banana.test)
MATLAB / Octave
The MATLAB bindings are currently getting a better interface, and this is a preview version.
It does currently not work on Windows.
For installation download the Toolbox liquidSVM.mltbx and install it in MATLAB by double clicking it. To compile and add paths issue:
Then you can use it like:
banana = liquidData('banana-mc'); model = svm_mc(banana.train, 'DISPLAY', 1, 'THREADS', 2); [result, err] = model.test(banana.test);
Most of the code also works in
Octave if you use liquidSVM-octave.zip.
LiquidData banana = new LiquidData("banana-mc"); SVM model = new MC(banana.train, new Config().display(1).threads(2)); ResultAndErrors result = model.test(banana.test);
If this is implemented in the file
Example.java this can be compiled and run using
# if you want to compile the JNI-native library: make lib # compile your Java-Code javac -classpath liquidSVM.jar Example.java # and run it java -Djava.library.path=. -cp .:liquidSVM.jar Example
make lib export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH $SPARK_HOME/bin/spark-submit \ --class de.uni_stuttgart.isa.liquidsvm.spark.App \ liquidSVM-spark.jar banana-mc
If you have configured
Spark to be used on a cluster with
hdfs dfs -put data/covtype-full.train.csv data/covtype-full.test.csv . make lib $SPARK_HOME/bin/spark-submit --files ../libliquidsvm.so \ --conf spark.executor.extraLibraryPath=. \ --conf spark.driver.extraLibraryPath=. \ --class de.uni_stuttgart.isa.liquidsvm.spark.App \ --num-executors 14 liquidSVM-spark.jar covtype-full
Extra Datasets for the Demo
Both datasets were compiled from LIBSVM's version of the covertype dataset, which in turn was taken from the UCI repository and preprocessed as in [RC02a]. Copyright for this dataset is by Jock A. Blackard and Colorado State University.
If you use liquidSVM, please cite it as:
I. Steinwart and P. Thomann. liquidSVM: A fast and versatile SVM package. ArXiv e-prints 1702.06899, February 2017.