Content deleted Content added
→Comparison table: added Shteno |
m clean up |
||
Line 1:
{{short description|Comparison of statistical analysis software that allows doing inference with Gaussian processes}}
This is a comparison of statistical analysis software that allows doing inference with [[Gaussian process
This article is written from the point of view of [[Bayesian statistics]], which may use a terminology different from the one commonly used in [[kriging]]. The next section should clarify the mathematical/computational meaning of the information provided in the table independently of contextual terminology.
Line 14:
* '''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.<ref name="gilboa2015"
** ''Toeplitz'': algorithms for stationary kernels on uniformly spaced data.<ref name="zhang2005"
** ''Semisep.'': algorithms for semiseparable covariance matrices.<ref name="foreman2017"
** ''Sparse'': algorithms optimized for [[Sparse matrix|sparse]] covariance matrices.
** ''Block'': algorithms optimized for [[
** ''Markov'': algorithms for kernels which represent (or can be formulated as) a Markov process.<ref name="sarkka2013"
* '''Approximate''': whether ''generic or specialized'' approximate algorithms are implemented. Supported approximate algorithms may be indicated as:
** ''Sparse'': algorithms based on choosing a set of "inducing points" in input space,<ref name="candela2005"
** ''Hierarchical'': algorithms which approximate the covariance matrix with a [[hierarchical matrix]].<ref name="ambikasaran2016"
=== Input ===
Line 29:
* '''ND''': whether multidimensional input is supported. If it is, multidimensional output is always possible by adding a dimension to the input, even without direct support.
* '''Non-real''': whether arbitrary non-[[Real numbers|real]] input is supported (for example, text or [[
=== Output ===
Line 45:
These columns are about finding values of variables which enter somehow in the definition of the specific problem but that can not be inferred by the Gaussian process fit, for example parameters in the formula of the kernel.
* '''Prior''': whether specifying arbitrary [[
* '''Posterior''': whether estimating the posterior is supported beyond [[point estimation]], possibly in conjunction with other software.
Line 136:
! [[scikit-learn]]
|-
! [http://www.cs.toronto.edu/%7Eradford/fbm.software.html fbm]<ref name="vanhatalo2013"
| {{free}}
| [[C (programming language)|C]]
Line 153:
! [http://www.cs.toronto.edu/%7Eradford/fbm.software.html fbm]
|-
! [http://www.gaussianprocess.org/gpml/code/matlab/doc/index.html GPML]<ref name="rasmussen2010"
| {{BSD-lic}}
| [[MATLAB]]
Line 170:
! [http://www.gaussianprocess.org/gpml/code/matlab/doc/index.html GPML]
|-
! [https://research.cs.aalto.fi/pml/software/gpstuff/ GPstuff]<ref name="vanhatalo2013"
| {{GPL-lic}}
| [[MATLAB]], [[R (programming language)|R]]
Line 187:
! [https://research.cs.aalto.fi/pml/software/gpstuff/ GPstuff]
|-
! [https://sheffieldml.github.io/GPy/ GPy]<ref name="matthews2017"
| {{BSD-lic}}
| [[Python (programming language)|Python]]
Line 204:
! [https://sheffieldml.github.io/GPy/ GPy]
|-
! [https://www.gpflow.org GPflow]<ref name="matthews2017"
| {{free|[[Apache License|Apache]]}}
| [[Python (programming language)|Python]]
Line 221:
! [https://www.gpflow.org GPflow]
|-
! [https://gpytorch.ai GPyTorch]<ref name="gardner2018"
| {{free|[[MIT License|MIT]]}}
| [[Python (programming language)|Python]]
Line 238:
! [https://gpytorch.ai GPyTorch]
|-
! [https://CRAN.R-project.org/package=GPvecchia GPvecchia]<ref name="zilber2021"
| {{GPL-lic}}
| [[R (programming language)|R]]
Line 255:
! [https://CRAN.R-project.org/package=GPvecchia GPvecchia]
|-
! [https://github.com/marionmari/pyGPs pyGPs]<ref name="neumann2015"
| {{BSD-lic}}
| [[Python (programming language)|Python]]
Line 272:
! [https://github.com/marionmari/pyGPs pyGPs]
|-
! [https://CRAN.R-project.org/package=gptk gptk]<ref name="kalaitzis2011"
| {{BSD-lic}}
| [[R (programming language)|R]]
Line 289:
! [https://CRAN.R-project.org/package=gptk gptk]
|-
! [https://celerite.readthedocs.io/en/stable/ celerite]<ref name="foreman2017"
| {{free|[[MIT License|MIT]]}}
| [[Python (programming language)|Python]], [[Julia (programming language)|Julia]], [[C++]]
| {{no}}
| {{yes|Semisep.}}{{efn|name=celerite|celerite implements only a specific subalgebra of kernels which can be solved in <math>O(n)</math>.<ref name="foreman2017"
| {{no}}
| {{no|1D}}
Line 306:
! [https://celerite.readthedocs.io/en/stable/ celerite]
|-
! [http://george.readthedocs.io george]<ref name="ambikasaran2016"
| {{free|[[MIT License|MIT]]}}
| [[Python (programming language)|Python]], [[C++]]
Line 323:
! [http://george.readthedocs.io george]
|-
! [https://github.com/google/neural-tangents neural-tangents]<ref name="novak2020"
| {{free|[[Apache License|Apache]]}}
| [[Python (programming language)|Python]]
Line 340:
! [https://github.com/google/neural-tangents neural-tangents]
|-
! [https://cran.r-project.org/package=DiceKriging DiceKriging]<ref name="roustant2012"
| {{GPL-lic}}
| [[R (programming language)|R]]
Line 357:
! [https://cran.r-project.org/package=DiceKriging DiceKriging]
|-
! [https://openturns.github.io/www/ OpenTURNS]<ref name="baudin2015"
| {{LGPL-lic}}
| [[Python (programming language)|Python]], [[C++]]
Line 374:
! [https://openturns.github.io/www/ OpenTURNS]
|-
! [http://www.uqlab.com/ UQLab]<ref name="marelli2014"
| {{proprietary}}
| [[MATLAB]]
Line 391:
! [http://www.uqlab.com/ UQLab]
|-
! [http://www.sumo.intec.ugent.be/ooDACE ooDACE]<ref name="couckuyt2014"
| {{proprietary}}
| [[MATLAB]]
|