Project details for JKernelMachines

Logo JMLR JKernelMachines 2.3

by dpicard - May 5, 2014, 10:14:45 CET [ Project Homepage BibTeX BibTeX for corresponding Paper Download ]

view (23 today), download ( 3 today ), 4 subscriptions

OverallWhole StarWhole StarWhole StarWhole Star1/2 Star
FeaturesWhole StarWhole StarWhole StarWhole Star1/2 Star
UsabilityWhole StarWhole StarWhole StarWhole Star1/2 Star
DocumentationWhole StarWhole StarWhole StarWhole Star1/2 Star
(based on 4 votes)

JKernelMachines: A simple framework for Kernel Machines

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.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Copyright David Picard 2014


  • 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


This work was started while working at Lip6 -

Changes to previous version:

Version 2.3 (density edition)

  • Cleaned up a lot of thing in density estimators
  • New density estimator algorithms
  • New MKL interface
  • Updated algebra functionalities
  • Better default tunning of parameters in various algorithms
BibTeX Entry: Download
Corresponding Paper BibTeX Entry: Download
URL: Project Homepage
Supported Operating Systems: Agnostic
Data Formats: Csv, Libsvm, Fvec
Tags: Svm, Kernels, Kernel Methods, Java
Archive: download here

Other available revisons

Version Changelog Date

Version 3.0

/! Warning: this version is incompatible with previous code

  • change license to BSD 3-clauses
  • change package name to net.jkernelmachines
  • change to maven build system (available through central)
  • online training interfaces to allow continuous online learning
  • add a new budget oriented kernel classifier
  • new kernel and processing especially for strings
May 4, 2016, 17:53:28

Version 2.5

  • New active learning algorithms
  • Better threading management
  • New multiclass SVM algorithm based on SDCA
  • Handle class balancing in cross-validation
  • Optional support of EJML switch to version 0.26
  • Various bugfixes and improvements
December 11, 2014, 17:51:42

Version 2.4

  • Added a simple GUI to rapidly test some algorithms
  • New Active Learning package
  • New algorithms (LLSVM, KMeans)
  • New Kernels (Polynomials, component wise)
  • Many bugfixes and improvements to existing algorithms
  • Many optimization

The number of changes in this version is massive, test it! Don't forget to report any regression.

July 24, 2014, 13:51:44

Version 2.3 (density edition)

  • Cleaned up a lot of thing in density estimators
  • New density estimator algorithms
  • New MKL interface
  • Updated algebra functionalities
  • Better default tunning of parameters in various algorithms
April 17, 2014, 18:42:10

Version 2.2.

  • Fast kernel using Nystrom approximation (with fast active learning procedure as in (Tabia BMVC13))
  • Large scale Kernel SVM using the Nystrom approximation
  • New algorithms and better tuning in the algebra package
  • Multhithreading support for algebra
  • Optional dependency on EJML for faster eigen decomposition (check is at runtime, compatible with older code)
  • Revised and online Javadoc
November 29, 2013, 16:07:12

Version 2.1.

  • new algorithms: SDCA (Shalev-Shwartz 2013), SAG (Le Roux 2012)
  • new custom matrix kernel to handle train and test separately
  • add fvec file format
  • add experimental package for linear algebra and corresponding processing (i.e. PCA, KPCA), use at your own risk!
  • add example app to perform VOC style classification
  • Lots of bug fixes
June 10, 2013, 15:03:58

Version 2.0.

  • Separation of the core library and unit testing
  • Junit testing added
  • Lots of bug fixes
  • Better examples, and many useless test classes removed
  • A small demo script to benchmark the library was added

Warning: all classes have migrated under the fr.lip6.jkernelmachines package, which breaks backward compatibility, but was necessary to keep the project going on sanely.

February 28, 2013, 21:09:31

Version 1.4.

  • New MKL algorithm ("A Binary Classification Framework for Two-Stage Multiple Kernel Learning", Kumar et al., ICML 2012)
  • Better support for CSV data
  • various bug fixes
  • Many small bug fixes
  • Improved documentation
November 7, 2012, 07:45:13

Version 1.3.

  • Multiclass classification package (independent of underlying learning algorithm)
  • Toys generators for artificial data
  • NFold Cross-validation
  • Many small bug fixes
  • Improved documentation
July 4, 2012, 09:48:05

Version 1.2.

New non-convex learning algorithm (LaSVM-I), MKL algorithms can use several SVM solvers, Standalone program doing cross-validation (provides a useful example), many bug fixes.

June 21, 2012, 19:12:11

Version 1.1.

New features: Evaluation package, CrossValidation package, CSV data format, Many more documentation, More complete building procedure, (very naive unit testing)

June 4, 2012, 17:39:59

Initial Announcement on

May 25, 2012, 10:46:06


No one has posted any comments yet. Perhaps you'd like to be the first?

Leave a comment

You must be logged in to post comments.