What are the differences?
These are the differences of LIBSVM Plus with respect to the official version.
- Four additional kernels: Stump, Perceptron, Laplacian, Exponential.
Such kernels might be called “infinite ensemble kernels” because a nonlinear SVM which uses them corresponds to a infinite ensemble classifier. Look at the publications of Hsuan-Tien Lin for more theoretical explanations. The code for realizing the above kernels was back-ported and adapted from his LIBSVM fork based on the older 2.8 version;
- Three additional SVM models: Classification via L2SVM, Support Vector Domain Description (SVDD) via L1SVM and via L2SVM. The code was back-ported and adapted from a LIBSVM tool: Calculating the radius of the smallest sphere containing all training data. The SVDD can be used as One Class SVM alternative. More theoretical explanations about SVDD can be found in David J. Tax PhD thesis and other papers;
- Updated python tools: the two python scripts
grid.pywere modified in order to allow a normal execution without requiring
gnuplotto be installed. Moreover, the
easy.pyscript now accepts a third parameter on the command line, that is the number of the kernel to use. The script
grid.pyexplicitly handles that with the
- More python tools: two scripts for converting datasets from LIBSVM file format to classical “dense” ASCII files (and viceversa) are provided in bundle. Very useful when you need to convert dataset from the file format used by UCI Machine Learning Repository. The scripts were originally created by Hsuan-Tien Lin;
- Only C++ code supported and mantained, due to the lack of enough time. No Java or Python code provided;
- Only Unix: for the same reason stated above, I only test on Linux and Mac OS X, which makes LIBSVM Plus likely to work also on other modern Unix systems.
Anyway, you may try the Makefile.win included in official LIBSVM package to compile and test LIBSVM Plus on Windows platforms.An experimental Windows support is now included.
Some additional comments to the source code are provided and some C structures (
decision_function) were moved from the
svm.h to allow third part softwares to access them in a easier way. Moreover, the
svm_model structure now provides three new members:
SV_idx (indices of the SVs in the original dataset),
BSV_idx (indices of the BSVs in the original dataset) and
lbsv (the number of BSVs). Finally, the enumeration element
RBF (which in the original LIBSVM refers to the Gaussian kernel) was renamed
GAUSSIAN, because there are several kernels which belong to the RBF class, not only the Gaussian one.
For this first release of the LIBSVM Plus I chose to use the same licencing of the original LIBSVM library.
As long as LIBSVM Plus is a straightforwardly augmented version of the official LIBSVM, it will have the same version number of the LIBSVM code used for making the release.
[download id="1" display="both"]
Since version 2.9, LIBSVM Plus is also hosted on Github repository.