Home

Awesome

Kernel Methods Toolbox

A MATLAB toolbox for nonlinear signal processing and machine learning

Author: Steven Van Vaerenbergh

Official web: https://github.com/steven2358/kmbox

About

The Kernel Methods Toolbox (KMBOX) is a collection of MATLAB programs that implement kernel-based algorithms, with a focus on regression algorithms and online algorithms. It can be used for nonlinear signal processing and machine learning.

KMBOX includes implementations of algorithms such as kernel principal component analysis (KPCA), kernel canonical correlation analysis (KCCA) and kernel recursive least-squares (KRLS).

The goal of this distribution is to provide easy-to-analyze algorithm implementations, which reveal the inner mechanics of each algorithm and allow for quick modifications. The focus of these implementations is therefore on readability rather than speed or memory usage.

The starting point of this toolbox was a set of programs written for the Ph.D. Thesis "Kernel Methods for Nonlinear Identification, Equalization and Separation of Signals".

Template files are provided to encourage external authors to include their own code into the toolbox.

Copyright notice

The code has been developed and copyrighted © 2014 by Steven Van Vaerenbergh. It is distributed under the terms of the BSD (3-Clause) License. In short, this means that everyone is free to use it, to modify it and to redistribute it on a free basis. It is not in the public domain; it is copyrighted and there are restrictions on its distribution (see LICENSE.txt).

Installation

  1. Run install.m to add the library folder to the path.
  2. Type savepath to save the changes to the path.

Usage

The name of each function uses the prefix km_ to minimize interference with other toolboxes. Usage of each function is specified in the function file itself.

Most algorithms have a corresponding demonstration file in the "demo" folder that starts with "km_demo". These are scripts that can be executed without setting any additional parameters.

The code uses the following conventions:

Citing KMBOX

If you use this toolbox in your research please cite this Ph.D. thesis:

@phdthesis {vanvaerenbergh2010kernel,
  author = {Van Vaerenbergh, Steven}
  title = {Kernel methods for nonlinear identification, equalization and separation of signals},
  year = {2010},
  school = {University of Cantabria},
  month = feb,
  note = {Software available at \url{https://github.com/steven2358/kmbox}}
}

Included algorithms

How to contribute code to the toolbox

Option 1: email it to me (steven@gtas.dicom.unican.es)

Option 2: fork the toolbox on GitHub, push your change to a named branch, then send me a pull request.

Include at least one "demo" file for each algorithm.

Changelog

History of changes:

Changes starting v0.10 are documented in the Git repository.

v0.9 (2013-05-21)

v0.8 (2013-02-11)

v0.7 (2012-09-01):

v0.6 (2012-03-26):

v0.5 (2012-02-14):

v0.4 (2011-05-04):

v0.3 (2010-12-03):

v0.2 (2010-11-08):

v0.1 (2010-09-08):