David Picard edited this page Nov 29, 2013 · 23 revisions

Welcome to the jkernelmachines wiki!


JKernelMachines is a java library for learning with kernels. It is primary designed to deal with custom kernels that are not easily found in standard libraries, such as kernels on structured data. These type of kernels are often used in computer vision or bioinformatic applications. We provide several kernels leading to state of the art classification performances in in computer vision, as well as various kernels on sets. Interestingly, the library is meant to be extended with new kernels easily. Standard SVM optimization algorithms are implemented, but also more sophisticated learning-based kernel combination methods such as Multiple Kernel Learning (MKL), and a recently published algorithm to learn powered products of similarities (Product Kernel Learning).


  • Several learning algorithms (LaSVM, LaSVM-I, SMO, SimpleMKL, GradMKL, QNPKL, SGDQN, Pegasos, ...)
  • Multiclass classification through generic classifiers.
  • Datatype agnosticism through Java Generics
  • Easy coding of new kernels
  • Several standard and exotic kernels (kernel on bags, combination kernels, ...)
  • Input system (can read libsvm, csv and fvec files)
  • Toys generator for artificial data
  • Basic linear algebra package (optionally based on EJML)
  • Evaluation and Cross Validation packages
  • Stand alone (requires only a working jdk and ant for easy compiling)



Available with the ant doc command, or here


frequently asked questions are answered here