Comparison of Gaussian process software
Appearance
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).