Description
LIBSVM is a comprehensive and easy-to-use software library designed for Support Vector Machines (SVM). It provides implementations for classification (C-SVC, nu-SVC), regression (epsilon-SVR, nu-SVR), and distribution estimation (one-class SVM). The library is engineered to be accessible to users from diverse fields who wish to leverage SVM as a powerful tool.
Key features of LIBSVM include efficient multi-class classification capabilities and support for various SVM formulations. It offers a range of kernel functions, including linear, polynomial, radial basis function (RBF), and sigmoid, with options for precomputed kernel matrices. For handling imbalanced datasets, LIBSVM supports weighted SVM. The library also provides cross-validation for model selection and probability estimates for classification and regression tasks.
LIBSVM is designed with a simple interface, allowing users to easily integrate it into their own programs. It is available with both C++ and Java source code, and includes interfaces for numerous programming languages and environments such as Python, R, MATLAB, Perl, Ruby, Weka, Common LISP, CLISP, Haskell, OCaml, LabVIEW, and PHP. Additionally, C# .NET code and CUDA extensions are available, and it is integrated into data mining environments like RapidMiner and PCP.
The package includes tools for data scaling and automatic model selection, such as the `grid.py` script which generates contour plots of cross-validation accuracy, aiding in parameter optimization. The project has a history of successful applications, with its developers winning several challenges, including the IJCNN 2001 Challenge and the WCCI 2008 Causation and Prediction challenge. The latest version, 3.37, was released in December 2025, with ongoing updates and bug fixes.
LIBSVM aims to democratize the use of SVM by providing a robust, efficient, and well-documented library. Its extensive language support and integration capabilities make it a versatile choice for researchers and developers working on machine learning tasks. The project also maintains a page for LIBSVM datasets and offers practical guides for beginners.
LIBSVM's Core Features
Supports C-SVC, nu-SVC, one-class SVM, epsilon-SVR, and nu-SVR
Efficient multi-class classification
Various kernel functions: linear, polynomial, RBF, sigmoid
Weighted SVM for unbalanced data
Cross-validation for model selection
Probability estimates
Includes data scaling tools
Automatic model selection with parameter optimization
C++ and Java source code available
Interfaces for Python, R, MATLAB, Perl, Ruby, Weka, LISP, Haskell, OCaml, LabVIEW, PHP, C#, CUDA, Node.js, Javascript, Scilab, Nimrod, Julia, Android, GO, Gretl
Integrated into data mining environments like RapidMiner
Installable via package managers like pip and vcpkg
Getting Started with LIBSVM
Download LIBSVM: Obtain the latest release from the official website or GitHub repository.
Install Interface: Install the appropriate language interface (e.g., `pip install -U libsvm-official` for Python).
Prepare Data: Format your training and testing data, potentially using provided scaling tools.
Configure Parameters: Select SVM type, kernel, and other parameters using command-line options or API calls.
Train Model: Use the LIBSVM library or command-line tool to train your SVM model.
Evaluate Model: Perform cross-validation or use probability estimates to assess model performance.
Integrate: Link LIBSVM into your own programs or data mining workflows.
LIBSVM's Use Cases
- Classification Tasks
- Regression Analysis
- Distribution Estimation
- Parameter Optimization
- Data Mining
- Machine Learning Research
- Load Prediction
- Feature Selection




