LibSVM is a specialized library for Support Vector Machines (SVM). Its development started in 2000 by Chih-Chung Chang and Chih-Jen Lin at National Taiwan University [Chang 2011] [LibSVM].
It is written in C/C++ but has also Java source code. The learning tasks are 1) support vector classification (binary and multi-class), 2) support vector regression, and 3) distribution estimation. Supported problem formulation are: C-Support Vector Classification, ν-Support Vector Classification, distribution estimation (one-class SVM), ɛ-Support Vector Regression, and νSupport Vector Regression. All of the formulations are quadratic minimization problems and are solved by sequential minimal optimization algorithm. The running time of minimizing SVM quadratic problems is reduced by shrinking and caching. LibSVM provides some special setting for unbalanced data by using different penalty parameters in the SVM problem formulation. It was successfully used in computer vision, NLP, neuro-imaging, and bioinformatics (since 2000 to 2010 with 250 000 downloads). It is also included in some DM environments: RapidMiner, PCP, and LIONsolver. The SVM learning code from the library is often reused in other open source ML toolkits, including GATE [Gate], KNIME [Knime], Orange [Orange] and scikit-learn. The library is very popular at open source ML community (released under the 3-clause BSD license). LibSVM version 3.22 released on December, 2016.
Strong points
Weak points