We make software available for our research. Note that it is not
'production code', it is often just a snapshot of the software used to
produce the results in a particular paper. This makes it easier for
other people to make comparisons and to reproduce our results.
is a couple of tricks for integrating your MATLAB/Octave code into LaTeX documents.
Making Software Available
Really Reproducible Research in the Computational Sciences
I believe machine learning researchers should be making their software
available at the same time they submit (or before) their papers to
conference papers or journals, and I've carried out this practice
since 2001. I wanted to put together the reasons why we should be
doing this at some point, but it turns out that other researchers have
already laid out reasons that pretty much match my own. So if you want
to know why I (and why you should) make your code available that
reproduces the figures in your papers please read this
which was inspired by ideas of Jon
Claerbout. See his white paper here.
Thanks to Kevin Murphy for pointing out these papers.
Neil Lawrence, 05 December 2005
Links to Software available on line
To download these software packages you need to register, the
packages are freely available for academic use, you must seek a
license for commercial use. Follow instructions on the sites to
access the software.
Python Research Software
The group has moved to Python as its main development software. We are releasing our main software now through github. The main release is our python package GPy available on github here. We have also moved the bulk of our MATLAB software to a github repository here.
C++ Research Software
|C++ GP-LVM||Neil D. Lawrence||GP-LVM software in C++. Currently doesn't implement the sparse algorithms, but includes dynamics and back constraints.|
|C++ IVM||Neil D. Lawrence||IVM Software in C++ , also includes the null category noise model for semi-supervised learning. |
Core Functionality: GPmat Toolboxes
These toolboxes provide the core functionality on which other toolboxes depend. These toolboxes are available separately for historical reasons, but have been merged into one GPmat toolbox released on github under a BSD license.
|GPmat|| Core Gaussian process toolbox.|
Separate toolboxes that were merged to form the new GPmat toolbox.
|DATASETS|| Various datasets and tools for loading them.|
|FGPLVM||Fast GP-LVM using reduced rank approximations to the covariance matrix.|
|GP|| Gaussian Process software including many approaches to sparse approximations.|
|IVM||Informative Vector Machine. A sparse approximation to full Gaussian processes.|
|KERN|| Various utilities for computing kernels (covariance functions).|
|MLTOOLS|| Various Machine Learning Tools that some toolboxes rely on.|
|MOCAP|| Tools for loading in and playing with MOCAP data.|
|NCNM||Null category noise model. A noise model for semi-supervised learning with Gaussian processes.|
|NDLUTIL|| Various utilities that some toolboxes rely on.|
|NOISE|| Various noise models for Gaussian processes.|
|OPTIMI|| Various optimisation tools.|
|PRIOR|| Various utilities for prior distributions.|
Toolboxes that Depend on the Core Functionality
These toolboxes make use of the core functionality. Some will be merged into the core toolbox over time. They tend to reflect more recent research innovations than the core material.
|BFD||Bayesian Fisher's Discriminant. A Gaussian process interpretation of Kernel Fisher Discriminants.|
|CHIPDYNO||Inference of Transcription Factor Activities: Package for combining network connectivity data with gene expression levels to infer gene specific activities of different transcription factors.|
|CHIPVAR||Variational Inference of Transcription Factor Activities: Package for combining network connectivity data with gene expression levels to infer gene specific activities of different transcription factors.|
|DGPLVM||The Discriminative GP-LVM.|
|GCA|| Generalised Component Analysis Software for learning a Student-t based version of ICA.|
|GPLVM||The original GP-LVM software using sparse approximations based on the IVM.|
|GPREGE|| Gaussian Process Ranking and Estimation of Gene Expression time-series.|
|GPSIM||Software for inferring latent forces in first order differential equations.|
|KPCA|| Missing data in Kernel PCA: Software for dealing with missing values in Kernel PCA|
|MTIVM||Multi-task Informative Vector Machine. Multi-task learning with Gaussian processes using the IVM sparse approximation|
|MULTIGP||Latent force Model Software and General Software for Gaussian Processes for Multiple Outputs. Includes sparse approximations.|
|OXFORD|| An old set of Gaussian process demos, sampling from covariance functions etc..|
|PPA||Probabilistic Point Assimilation. A general fast variational method for GPs|
|SGPLVM||The shared GP-LVM model.|
|SPECTRAL||Software for selecting the number of clusters in spectral clustering.|
|VARGPLVM||The Bayesian variational GP-LVM model.|
|VIS||Variational Importance Sampler for processing cDNA Microarray Images|