-
- Description:
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 under the terms of the 3-clause BSD license. See the COPYING file for more details.
Copyright David Picard 2016
picard@ensea.fr
Features
- Several learning algorithms (LaSVM, LaSVM-I, SMO, SimpleMKL, GradMKL, QNPKL, SGDQN, Pegasos, NystromSVM, LLSVM...)
- Multiclass classification through generic classifiers.
- Active learning
- 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, arff 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 1.7 and maven for easy compiling)
- Simple GUI
HowTo
- Compiling
- Graphical User Interface
- Basic Example
- Kernels
- Classifier Training
- Transductive classifiers
- Multiclass Training
- Reading data
- Data generators
- Basic Linear Algebra
- Evaluation
- CrossValidation
- Standalone programs
Javadoc
Available with maven, or here
FAQ
frequently asked questions are answered here
Acknowledgement
This work was started while working at Lip6 - http://www.lip6.fr
- Changes to previous version:
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
Other available revisons
-
Version Changelog Date 3.0 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 2.5 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 2.4 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 2.3 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 2.2 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 2.1 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 2.0 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 1.4 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 1.3 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 1.2 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 1.1 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 1.0 Initial Announcement on mloss.org.
May 25, 2012, 10:46:06
Comments
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.