LIBSVM Plus is a version of LIBSVM adapted from its head version released on November 1, 2009, i.e. the 2.9 version.

What are the differences?

These are the differences of LIBSVM Plus with respect to the official version.

  1. 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;
  2. 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;
  3. Updated python tools: the two python scripts and were modified in order to allow a normal execution without requiring gnuplot to be installed. Moreover, the script now accepts a third parameter on the command line, that is the number of the kernel to use. The script explicitly handles that with the -t switch;
  4. 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;
  5. Only C++ code supported and mantained, due to the lack of enough time. No Java or Python code provided;
  6. 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 included in official LIBSVM package to compile and test LIBSVM Plus on Windows platforms. An experimental Windows support is now included.

Minor changes

Some additional comments to the source code are provided and some C structures (svm_model and decision_function) were moved from the svm.cpp to 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.

Version number

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"]

Git Repository

Since version 2.9, LIBSVM Plus is also hosted on Github repository.

27 Responses to “LIBSVM Plus”

  1. Xunkai Wei
    25 June 2008 at 2:53 am #

    Nice work !

    Could we collaborate on enclosing machine learning ?

  2. Nemo
    25 June 2008 at 9:36 am #

    Hello Xunkai,

    I took a look to your blog and I found interesting ideas in your work.

    About the collaboration, it would be nice, so, why not?

    Let me know.

  3. Xunkai Wei
    25 June 2008 at 10:38 am #

    Ha, Good. I just recompiled a matlab interface for libsvm plus. Will let you know my plans tomorrow, since now is play time. BTW, did you see the CVM library ? Have a good day!

  4. Nemo
    25 June 2008 at 10:45 am #

    Yes, I know LibCVM. I am interested in and so I planned to study the library and CVM/BVM problems more in depth, in order to backport all the CV-based machines in the LIBSVM Plus. The source code is distributed as Visual C++ project but it is still include LibSVM for classical SV-based machines. So it is supposed to be not hard reorganizing all the stuff in the original way.

    BTW, let me know any news about your playing ;)
    Good work and have a nice day!

  5. Xunkai Wei
    26 June 2008 at 2:25 am #

    Dear Nemo,

    Great. I write some papers related with CVM/BVM. Generally, CVM is based on clarkson’s MEB algorithm. Mine is based on Kumar’s MEB algorithm, which is an iterated coreset+QP MEB algorithm. We can talk about them more in details if possible.

    Nemo, I’m interested in large scale QP solution methods and applications and I have many ideas. As you see my blog, there are some interesting ideas. I think we can collaborate on many of them if you interested.

    Currently, I’m involved in two projects. And I need some excellent journal papers. If you could join me making some experiments, I could easily complete it. So, Looking forward to your response.

    I play half-life episode III and battlefield II (Only) in my spare time, :)


    Xunkai Wei

  6. Xunkai Wei
    26 June 2008 at 6:14 am #


    The core of cvm is not available, if you could backport of them. It could be great for us to use the powerful solver. Then work hard. I write a MATLAB version CVM. I think, when it’s mature, I will also make it public.



  7. Xunkai Wei
    26 June 2008 at 6:16 am #

    BTW, I add you to my friends group. Keep in touch for the common interest!

  8. Nemo
    26 June 2008 at 8:14 am #

    Well, your interest in Enclosing Machine Learning and my interest in support vector methods for clustering combines very well, IMHO. So, we could discuss further on this.

    It’d be nice to make some experiments together too.

    About Kumar algorithm, I found this first paper, but I guess there are more. About your papers, I am not sure that I found the complete list. Is this?

    About CVM: I’ll try. It’s not my priority right now :)

    I added your blog in my blogroll here.

    BTW, feel free to contact me also with other my contacts.

    See u soon,

  9. Xunkai Wei
    26 June 2008 at 8:53 am #

    OK. My two paper will appear in IEEE Explore and Springer soon. If you are interested in them, please let me know. I can send you a final copy FYI.

  10. Xunkai Wei
    26 June 2008 at 8:56 am #

    YES, most part are adapted from kumar’s work. But, The difference is that I use a coreset + QP for the big QP problem instead of SOCP. This makes it applicable to many kernel methods as CVM does.

  11. Nemo
    26 June 2008 at 10:27 am #

    Yes, it’d interesting to read ‘em. If you can, send ‘em to me using my mail address. Thanks in advance.

  12. Xunkai Wei
    1 July 2008 at 4:10 am #

    Expect its coming.

  13. Xunkai Wei →
    15 September 2008 at 4:07 am #

    Dear Nemo.

    Wellcome back. Ha, Let’s work on it together. I get an idea, and I will email you later.


  14. Nemo
    15 September 2008 at 9:23 am #

    Hello Xunkai. I am looking forward to your mail message.

    See u.

  15. Xunkai Wei
    2 November 2008 at 5:07 am #

    Dear Nemo,

    I have update the matlab interface to version 2.88, do you plan to upgrade libsvm-plus to version 2.88,too. I will release new version matlab interface after your upgrade. Cheers~!


  16. Nemo
    6 November 2008 at 4:25 pm #

    Dear Xunkai, hi.
    Yes, I’ll do it asap!
    Maybe at the end of the month. I am little bit busy right now! :)

  17. Xunkai Wei
    6 December 2008 at 4:04 pm #

    Take your time. When end of the year approaches, we always have too many things to do, haha. Yet, we can expect prospective achievements for the coming new year! Wish you a new year in advance!

  18. Xunkai Wei
    22 February 2009 at 2:41 am #

    Good. Dear Nemo, I’m now working on it. Will let you know when it is done.




  1. Domus Neminis — Announcing LIBSVM Plus - 23 June 2008

    [...] LIBSVM Plus is a version of LIBSVM adapted from its head version released on April 1, 2008, i.e. the 2.86 version. [...]

  2. Domus Neminis — New Kernels for LIBSVM Plus - 28 June 2008

    [...] guys, it is not so long that I released LIBSVM Plus, but I am about to release a minor update which introduce new kernels. Some of them are well [...]

  3. Matlab Interface for LIBSVM Plus 2.6 — Domus Neminis - 15 September 2008

    [...] Xunkai Wei, which is one on the most interested guy in LIBSVM Plus, has recently released a MATLAB interface for my LIBSVM Plus. [...]

  4. LIBSVM Plus 2.88 is out — Domus Neminis - 2 February 2009

    [...] a huge delay, I’ve finally released the new version of LIBSVM Plus, back-porting the latest changes from the head version (2.88) of the classic [...]

  5. LIBSVM Plus 2.89 is out | Domus Neminis - 14 June 2009

    [...] LIBSVM Plus [...]

  6. Support Vector Machines In PHP - PHP/ir - 2 December 2009

    [...] [...]

  7. [Ian Barber]Support Vector Machines In PHP – techPortal - 3 December 2009

    [...] an issue, you will probably want to use one of the excellent SVM systems available such as LibSVM / LibSVM+ or SVMlight (though SVMlight is only free for non-commercial user). These offer great speed and [...]

  8. Domus Neminis » LIBSVM Plus 2.9 is out - 26 January 2010

    [...] library. A couple of months laster, I have finally found the time to backport the changes in my LIBSVM Plus, now at the 2.9 version as [...]

  9. Domus Neminis » LIBSVM Plus 2.9.1 is out - 10 March 2010

    [...] minor release for LIBSVM Plus is out, just to introduce an experimental support for compiling the code on Windows machine. The [...]