Domus Neminis

Home and Private Blog Network of Vincenzo Russo (aka Nemo)

LIBSVM Plus

LIBSVM Plus is a version of LIBSVM adapted from its head version released on April 1, 2008, i.e. the 2.86 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 easy.py and grid.py were modified in order to allow a normal execution without requiring gnuplot to be installed. Moreover, the easy.py script now accepts a third parameter on the command line, that is the number of the kernel to use. The script grid.py 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 code provided. Other language interfaces (like Python, etc.) should be work but only providing the original features of LIBSVM. Anyway, no tests were made;
  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 Makefile.win included in official LIBSVM package to compile and test LIBSVM Plus on Windows platforms.

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.

License

For this first release of the LIBSVM Plus I chose to use the same licensing of the original LIBSVM library.

Version number

As long as LIBSVM Plus will be 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

  LIBSVM Plus 2.86 (44.6 KiB, 63 hits)

14 Comments

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

  2. Nice work !

    Could we collaborate on enclosing machine learning ?

  3. 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.

  4. 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!

  5. 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!

  6. 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, :)

    Best,

    Xunkai Wei

  7. Nemo,

    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.

    Cheers,

    Xunkai

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

  9. 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,
    Nemo.

  10. 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.

  11. 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.

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

  13. [...] 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 [...]

  14. Expect its coming.

Leave a Reply