Jump to content

Comparison of Gaussian process software

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Joanico (talk | contribs) at 01:35, 23 May 2020 (Created page with 'This is a comparison of statistical analysis software that supports doing inference with gaussian processes. == Description of columns ==...'). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

This is a comparison of statistical analysis software that supports doing inference with gaussian processes.

Description of columns

  • Exact: whether generic exact algorithms are implemented. These algorithms are usually appropriate only up to some thousands of datapoints.
  • Specialized: whether specialized exact algorithms for specific classes of problems are implemented. Supported specialized algorithms may be indicated as:
    • Kronecker: algorithms for separable kernels on grid data.
    • Toeplitz: algorithms for stationary kernels on uniformly spaced data.
    • Semisep.: algorithms for semiseparable covariance matrices.
    • Sparse: algorithms optimized for sparse covariance matrices.
  • Approximate: whether generic approximate algorithms are implemented.
  • Multidim.: whether multidimensional input is supported.
  • Likelihood: whether non-gaussian likelihoods are supported.
  • Non-num.: whether non-numerical input is supported (for example, text).

Comparison table

Name License Language Solvers Likelihood Input
Exact Specialized Approximate Multidim. Non-num.
PyMC3 Apache Python Yes Kronecker Sparse Any nD No
GPy BSD Python
pyGPs BSD Python
Stan BSD, GPL custom
GPyTorch MIT Python
GPML BSD MATLAB
fbm Free C
gptk BSD R
SuperGauss GNU GPL R, C++ No Toeplitz No Gaussian 1D No
celerite MIT Python, Julia, C++ No Semisep. No Gaussian 1D No
george MIT Python, C++ Yes No HOLDR Gaussian nD No
neural-tangents Apache Python

Notes

  • SuperGauss implements a superfast Toeplitz solver with computational complexity O(nlog^2n).
  • celerite implements only a specific subalgebra of kernels which can be solved in O(nlogn).