SvmLightLib

A Windows DLL wrapper for Thorsten Joachims’ SVM implementations.

Support vector machines (SVMs) are a set of supervised learning methods used for classification and regression. One of the most well-known implementations available freely on the Web is Thorsten Joachims’ SVMlight (accompanied with SVMperf and variants of SVMstruct).

The original library is implemented in C. Several command-line utilities are implemented on top of it to expose the functionality to end users. The utilities are easy to use in contrast to the underlying library which exhibits a relatively steep learning curve. This motivated us to develop a DLL wrapper for the library. The developed DLL interface looks much like that of the command-line utilities. In short, the DLL wrapper has the following properties:

  • It is easy to use, much like the command-line utilities.
  • It supports working with several SVM models.
  • It is thread-safe. The original code was modified so that all global variables were removed. It is thus possible to train several models in parallel (e.g. in different threads).
  • It supports saving models in a binary file format (smaller in size, faster to load).
  • It is written in C++.
  • It is meant to be used from other programming environments (e.g. .NET).

Downloads

Source Code

Binaries

Change Log

Version 0.9 (October 2008)

The first release. Supports binary induction, binary transduction, regression (not tested), and multiclass induction. The binary models are based on SVMlight. The multiclass model is based on SVMstruct and is thus much faster. Saving and loading binary models is not (yet) supported.

Version 1.0 (April 2009)

A C# usage example is included. It is now possible to save and load binary models. Also, it is easier to build 64-bit applications: x64 solution platform is available in the configuration menu.

License

The license statement is included in the corresponding downloadable packages (look for the file named License.txt). In short, SvmLightLib is available for non-commercial use only. It must not be modified and distributed without prior permission of the author of SVMlight and SVMstruct (Thorsten Joachims). None of the authors is responsible for implications from the use of this software.