Julia GP Package Comparison

JuliaGaussianProcesses Organization

There is a common effort to bring the GP people together through the JuliaGP organization. We work on making the building blocks necessary for GP such as KernelFunctions.jl for kernels, AbstractGPs.jl for the basic GP definitions and more is coming. The long-term goal is to have AGP.jl depend on all of this elements and to use it as a wrapper.

๐Ÿšง This comparison is now quite outdated and new solutions have been introduced ๐Ÿšง

AugmentedGaussianProcesses.jl vs Stheno.jl vs GaussianProcesses.jl

There are already two other Gaussian Process packages in Julia, however their feature are quite orthogonal. They are roughly compared here: AGP.jl stands for AugmentedGaussianProcesses.jl and GP.jl for GaussianProcesses.jl

Likelihood

LikelihoodAGP.jlStheno.jlGP.jl
Gaussianโœ“โœ“ (multi-input/multi-output)โœ“
Student-Tโœ“โœ–โœ“
Bernoulliโœ“ (Logistic)โœ–โœ“ (Probit)
Bayesian-SVMโœ“โœ–โœ–
Poissonโœ“โœ–โœ“
NegativeBinomialโœ“โœ–โœ–
Exponentialโœ–โœ–โœ“
MultiClassโœ“โœ–โœ–

Inference

InferenceAGP.jlStheno.jlGP.jl
Analytic (Gaussian only)โœ“โœ“โœ“
Variational Inferenceโœ“ (Analytic and Num. Appr.)โœ–โœ–
Streaming VIโœ“โœ–โœ–
Gibbs-Samplingโœ“โœ–โœ–
MCMCโœ–โœ–โœ“
Expec. Propag.โœ–โœ–โœ–

Kernels

KernelAGP.jlStheno.jlGP.jl
RBF/Squared Exponentialโœ“โœ“โœ“
Maternโœ“โœ–โœ“
Constโœ–โœ“โœ“
Linearโœ–โœ“โœ“
Polyโœ–โœ“โœ“
Periodicโœ–โœ–โœ“
Exponentiated Quadraticโœ–โœ“โœ–
Rational Quadraticโœ–โœ“โœ“
Wienerโœ–โœ“โœ–
Sum of kernelโœ–โœ–โœ“
Product of kernelsโœ–โœ–โœ“

Note that the kernels will be defered to MLKernels.jl in the future.

Other features

FeatureAGP.jlStheno.jlGP.jl
Sparse GPโœ“โœ–โœ“
Custom prior Meanโœ“โœ“โœ“
Hyperparam. Opt.โœ“?โœ“
MultiOutputโœ“โœ“โœ–
Onlineโœ“โœ–โœ–