Comparison of Gaussian process software: Difference between revisions

Content deleted Content added
Joanico (talk | contribs)
Remove MatlabGP, see discussion page.
Citation bot (talk | contribs)
Add: article-number, bibcode. Removed URL that duplicated identifier. Removed access-date with no URL. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox | #UCB_webform_linked 479/1032
 
(19 intermediate revisions by 7 users not shown)
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 [[hyperprior]]s on the [[Hyperparameter (Bayesian statistics)|hyperparameter]]s is supported.
* '''Posterior''': whether estimating the posterior is supported beyond [[point estimation]], possibly in conjunction with other software.
 
Line 59:
 
== Comparison table ==
{{sort-under}}
 
{| class="wikitable sortable sort-under" style="font-size: 90%; text-align: center; width: auto;"
|-
! rowspan="2" | Name
Line 68:
! colspan="2" | Input
! colspan="2" | Output
! colspan="2" | [[Hyperparameter (Bayesian statistics)|Hyperparameters]]
! colspan="3" | [[Linear transformations]]
! rowspan="2" | Name
|-
! Exact
! {{verth|Specialized}}
! {{verth|Approxi­mate}}
! Approximate
! ND
! {{nowrap}} verth| Non-real}}
! Likelihood
! Errors
! Prior
! Posterior
! {{verth|Derivative}}
! Deriv.
! Finite
! Sum
Line 136:
! [[scikit-learn]]
|-
! [http://www.cs.toronto.edu/%7Eradford/fbm.software.html fbm]<br/><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]<br/><ref name="rasmussen2010" /><ref name="vanhatalo2013" />
| {{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]<br/><ref name="vanhatalo2013" />
| {{GPL-lic}}
| [[MATLAB]], [[R (programming language)|R]]
| {{yes}}
| {{yes|Sparse, Markov}}
| {{yes|Sparse}}
| {{yes|ND}}
Line 187:
! [https://research.cs.aalto.fi/pml/software/gpstuff/ GPstuff]
|-
! [https://sheffieldml.github.io/GPy/ GPy]<br/><ref name="matthews2017" />
| {{BSD-lic}}
| [[Python (programming language)|Python]]
Line 204:
! [https://sheffieldml.github.io/GPy/ GPy]
|-
! [https://www.gpflow.org GPflow]<br/><ref name="matthews2017" />
| {{free|[[Apache License|Apache]]}}
| [[Python (programming language)|Python]]
Line 221:
! [https://www.gpflow.org GPflow]
|-
! [https://gpytorch.ai GPyTorch]<br/><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]<br/><ref name="zilber2021" />
| {{GPL-lic}}
| [[R (programming language)|R]]
| {{yes}}
| {{no}}
| {{yes|Sparse, HierarchicalHierarch&shy;ical}}
| {{yes|ND}}
| {{no}}
Line 255:
! [https://CRAN.R-project.org/package=GPvecchia GPvecchia]
|-
! [https://github.com/marionmari/pyGPs pyGPs]<br/><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]<br/><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]<br/><ref name="foreman2017" />
| {{free|[[MIT License|MIT]]}}
| [[Python (programming language)|Python]], [[Julia (programming language)|Julia]], [[C++]]
Line 306:
! [https://celerite.readthedocs.io/en/stable/ celerite]
|-
! [http://george.readthedocs.io george]<br/><ref name="ambikasaran2016" />
| {{free|[[MIT License|MIT]]}}
| [[Python (programming language)|Python]], [[C++]]
| {{yes}}
| {{no}}
| {{yes|HierarchicalHierarch&shy;ical}}
| {{yes|ND}}
| {{no}}
Line 323:
! [http://george.readthedocs.io george]
|-
! [https://github.com/google/neural-tangents neural-tangents]<br/><ref name="novak2020" />{{efn|neural-tangents is a specialized package for infinitely wide neural networks.}}
| {{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]<br/><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]<br/><ref name="baudin2015" />
| {{LGPL-lic}}
| [[Python (programming language)|Python]], [[C++]]
Line 374:
! [https://openturns.github.io/www/ OpenTURNS]
|-
! [http://www.uqlab.com/ UQLab]<br/><ref name="marelli2014" />
| {{proprietary}}
| [[MATLAB]]
Line 544:
! [https://celerite2.readthedocs.io/en/latest/ celerite2]
|-
! [https://smt.readthedocs.io/en/latest/ SMT]<br/><ref name="saves2024" /><ref name="bouhlel2019" />
| {{free|[[BSD licenses|BSD]]}}
| [[Python (programming language)|Python]]
| {{yes}}
| {{yes|PODno}}
| {{yes|Sparse, PODI{{efn|name=PODI| PODI (Proper Orthogonal Decomposition + Interpolation) is an approximation for high-dimensional multioutput regressions. The regression function is lower-dimensional than the outcomes, and the subspace is chosen with the PCA of the (outcome, dependent variable) data. Each principal component is modeled with an a priori independent Gaussian process.<ref name="Porrello24" />}}, other}}
| {{yes|Sparse}}
| {{yes|ND}}
| {{Yesno}}
| {{no|Gaussian}}
| {{partial|i.i.d.}}
| {{yespartial|Some}}
| {{yespartial|Some}}
| {{yespartial|First}}
| {{no}}
| {{no}}
Line 590:
| {{partial|Manually}}
| {{partial|Manually}}
| {{partial|ApproximateApproxi&shy;mate}}
| {{no}}
| {{yes}}
! [https://github.com/wesselb/stheno Stheno]
|-
! [https://docs.rs/egobox-gp/latest/egobox_gp/ Egobox-gp]<br/><ref name="Lafage2022" />
![https://CODES.arizona.edu CODES]
| {{free|[[Apache License|Apache]]}}
|
| [[Rust (programming language)|Rust]]
|[[MATLAB]]
| {{Yesyes}}
| {{no}}
|{{Yes|Heteroskedastic, VAE, POD}}
| {{Yesyes|Sparse}}
| {{Yesyes|ND}}
| {{Nono}}
| {{Nono|Gaussian}}
| {{partial|i.i.d.}}
| {{no}}
|{{partial|Some, Automatic}}
| {{partial|Mean AposterioriMAP}}
| {{Nopartial|First}}
| {{Nono}}
| {{Nono}}
! [https://CODESdocs.arizona.edurs/egobox-gp/latest/egobox_gp/ CODESEgobox-gp]
|-
! rowspan="2" | Name
Line 616:
! rowspan="2" | [[Programming language|Language]]
! Exact
! {{verth|Specialized}}
! {{verth|Approxi&shy;mate}}
! Approximate
! ND
! {{nowrap}} verth| Non-real}}
! Likelihood
! Errors
! Prior
! Posterior
! {{verth|Derivative}}
! Deriv.
! Finite
! Sum
Line 644:
<ref name="foreman2017">{{cite journal |last1=Foreman-Mackey |first1=Daniel |last2=Angus |first2=Ruth |last3=Agol |first3=Eric |last4=Ambikasaran |first4=Sivaram |s2cid=88521913 |title=Fast and Scalable Gaussian Process Modeling with Applications to Astronomical Time Series |journal=The Astronomical Journal |date=9 November 2017 |volume=154 |issue=6 |page=220 |doi=10.3847/1538-3881/aa9332|arxiv=1703.09710 |bibcode=2017AJ....154..220F |doi-access=free }}</ref>
 
<ref name="gilboa2015">{{cite journal |last1=P. Cunningham |first1=John |last2=Gilboa |first2=Elad |last3=Saatçi |first3=Yunus |s2cid=6878550 |title=Scaling Multidimensional Inference for Structured Gaussian Processes |journal=IEEE Transactions on Pattern Analysis and Machine Intelligence |date=Feb 2015 |volume=37 |issue=2 |pages=424–436 |doi=10.1109/TPAMI.2013.192|pmid=26353252 |arxiv=1209.4120 |bibcode=2015ITPAM..37..424G }}</ref>
 
<ref name="zhang2005">{{cite book |last1=Leith |first1=D. J. |last2=Zhang |first2=Yunong |last3=Leithead |first3=W. E. |title=Proceedings of the 44th IEEE Conference on Decision and Control |chapter=Time-series Gaussian Process Regression Based on Toeplitz Computation of O(N²) Operations and O(N)-level Storage |s2cid=13627455 |date=2005 |pages=3711–3716 |doi=10.1109/CDC.2005.1582739|isbn=0-7803-9567-0 }}</ref>
Line 662:
<ref name="vanhatalo2013">{{cite journal |last1=Vanhatalo |first1=Jarno |last2=Riihimäki |first2=Jaakko |last3=Hartikainen |first3=Jouni |last4=Jylänki |first4=Pasi |last5=Tolvanen |first5=Ville |last6=Vehtari |first6=Aki |title=GPstuff: Bayesian Modeling with Gaussian Processes |journal=Journal of Machine Learning Research |date=Apr 2013 |volume=14 |pages=1175−1179 |url=http://jmlr.csail.mit.edu/papers/v14/vanhatalo13a.html |accessdate=23 May 2020}}</ref>
 
<ref name="marelli2014">{{cite journal |last1=Marelli |first1=Stefano |last2=Sudret |first2=Bruno |title=UQLab: a framework for uncertainty quantification in MATLAB |journal=Vulnerability, Uncertainty, and Risk. Quantification, Mitigation, and Management |date=2014 |pages=2554–2563 |doi=10.3929/ethz-a-010238238 |isbn=978-0-7844-1360-9 |url=https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/379365/eth-14488-01.pdf?sequence=1&isAllowed=y |accessdate=28 May 2020}}</ref>
 
<ref name="matthews2017">{{cite journal |last1=Matthews |first1=Alexander G. de G. |last2=van der Wilk |first2=Mark |last3=Nickson |first3=Tom |last4=Fujii |first4=Keisuke |last5=Boukouvalas |first5=Alexis |last6=León-Villagrá |first6=Pablo |last7=Ghahramani |first7=Zoubin |last8=Hensman |first8=James |title=GPflow: A Gaussian process library using TensorFlow |journal=Journal of Machine Learning Research |date=April 2017 |volume=18 |issue=40 |pages=1–6 |arxiv=1610.08733 |url=http://jmlr.org/papers/v18/16-537.html |accessdate=6 July 2020}}</ref>
Line 668:
<ref name="couckuyt2014">{{cite journal |last1=Couckuyt |first1=Ivo |last2=Dhaene |first2=Tom |last3=Demeester |first3=Piet |title=ooDACE toolbox: a flexible object-oriented Kriging implementation |journal=Journal of Machine Learning Research |date=2014 |volume=15 |pages=3183–3186 |url=http://www.jmlr.org/papers/volume15/couckuyt14a/couckuyt14a.pdf |accessdate=8 July 2020}}</ref>
 
<ref name="zilber2021">{{cite journal |last1=Zilber |first1=Daniel |last2=Katzfuss |first2=Matthias |title=Vecchia–Laplace approximations of generalized Gaussian processes for big non-Gaussian spatial data |journal=Computational Statistics & Data Analysis |date=January 2021 |volume=153 |pagearticle-number=107081 |doi=10.1016/j.csda.2020.107081 |arxiv=1906.07828 |s2cid=195068888 |url=https://www.sciencedirect.com/science/article/pii/S0167947320301729 |access-date=1 September 2021 |issn=0167-9473}}</ref>
 
<ref name="kalaitzis2011">{{cite journal |last1=Kalaitzis |first1=Alfredo |last2=Lawrence |first2=Neil D. |title=A Simple Approach to Ranking Differentially Expressed Gene Expression Time Courses through Gaussian Process Regression |journal=BMC Bioinformatics |date=May 20, 2011 |volume=12 |issue=1 |pages=180 |doi=10.1186/1471-2105-12-180 |pmid=21599902 |pmc=3116489 |issn=1471-2105 |doi-access=free }}</ref>
Line 676:
<ref name="baudin2015">{{cite book |first1=Michaël |last1=Baudin |first2=Anne |last2=Dutfoy |first3=Bertrand |last3=Iooss |first4=Anne-Laure |last4=Popelin |title=Handbook of Uncertainty Quantification |chapter=OpenTURNS: An Industrial Software for Uncertainty Quantification in Simulation |date=2015 |pages=1–38 |editor1= Roger Ghanem|editor2= David Higdon|editor3= Houman Owhadi|doi=10.1007/978-3-319-11259-6_64-1 |arxiv=1501.05242|isbn=978-3-319-11259-6 |s2cid=88513894 }}</ref>
 
<ref name="sarkka2013">{{cite journal |last1=Sarkka |first1=Simo |last2=Solin |first2=Arno |last3=Hartikainen |first3=Jouni |title=Spatiotemporal Learning via Infinite-Dimensional Bayesian Filtering and Smoothing: A Look at Gaussian Process Regression Through Kalman Filtering |journal=IEEE Signal Processing Magazine |date=2013 |volume=30 |issue=4 |pages=51–61 |doi=10.1109/MSP.2013.2246292 |s2cid=7485363 |url=https://ieeexplore.ieee.org/document/6530736 |access-date=2 September 2021}}</ref>
 
<ref name="saves2024bouhlel2019">{{cite journal |last1=BouhlelSaves|first1=Mohamed A.Paul |last2=Hwang Lafage|first2= John T. Rémi |last3=Bartoli |first3=Nathalie |last4=LafageDiouane |first4=Rémi Youssef |last5=Bussemaker |first5= Jasper |last6=Lefebvre |first6= Thierry |last7=Hwang |first7= John T. |last8= Morlier |first5first8= Joseph |last6last9= Martins |first6first9= Joaquim R.R.A. |title=ASMT Python2.0: surrogateA modelingSurrogate frameworkModeling Toolbox with derivativesa focus on hierarchical and mixed variables Gaussian processes |journal=Advances in Engineering Software |date=20192024 |volume=135188|issue=1 |pages=102662103571 |doi=10.1016/j.advengsoft.2019.032023.005103571 |url=https://www.sciencedirect.com/science/article/pii/S0965997818309360?via%3DihubS096599782300162X|arxiv=2305.13998 }}</ref>
 
<ref name="saves2024">{{cite journal |last1=Bouhlel|first1=Mohamed A. |last2=Hwang |first2= John T. |last3=Bartoli |first3=Nathalie |last4=Lafage|first4=Rémi |last5= Morlier |first5= Joseph |last6= Martins |first6= Joaquim R.R.A. |title=A Python surrogate modeling framework with derivatives |journal=Advances in Engineering Software |date=2019|volume=135|issue=1 |pages=102662|doi=10.1016/j.advengsoft.2019.03.005 |url=https://www.sciencedirect.com/science/article/pii/S0965997818309360}}</ref>
 
<ref name="Porrello24">{{cite book |last1=Porrello |first1=Christian |last2=Dubreuil |first2=Sylvain |last3=Farhat |first3=Charbel |title=AIAA Aviation Forum and Ascend 2024 |chapter=Bayesian Framework With Projection-Based Model Order Reduction for Efficient Global Optimization |date=2024 |pages=4580 |doi=10.2514/6.2024-4580 |isbn=978-1-62410-716-0 |chapter-url=https://arc.aiaa.org/doi/abs/10.2514/6.2024-4580}}</ref>
 
<ref name="bouhlel2019Lafage2022">{{cite journal |last1=SavesLafage |first1=Paul |last2=Lafage|first2=Rémi |last3=Bartoli |first3=Nathalie |last4=Diouane |first4= Youssef |last5=Bussemaker |first5= Jasper |last6=Lefebvre |first6= Thierry |last7=Hwang |first7= John T. |last8= Morlier |first8= Joseph |last9= Martins |first9= Joaquim R.R.A. |title=SMT 2.0: A Surrogate Modeling Toolbox withegobox, a focusRust ontoolbox hierarchicalfor andefficient mixedglobal variables Gaussian processesoptimization |journal=AdvancesJournal of inOpen EngineeringSource Software |date=20242022 |volume=1887 |issue=178 |pages=1035714737 |doi=10.101621105/jjoss.04737 |bibcode=2022JOSS.advengsoft.2023.103571.7.4737L |url=https://wwwjoss.sciencedirecttheoj.comorg/sciencepapers/article10.21105/pii/S096599782300162X?via%3Dihub|arxiv=2305joss.13998 04737.pdf}}</ref>
 
<ref name="saves2024">{{cite journal |last1=Bouhlel|first1=Mohamed A. |last2=Hwang |first2= John T. |last3=Bartoli |first3=Nathalie |last4=Lafage|first4=Rémi |last5= Morlier |first5= Joseph |last6= Martins |first6= Joaquim R.R.A. |title=A Python surrogate modeling framework with derivatives |journal=Advances in Engineering Software |date=2019|volume=135|issue=1 |pages=102662|doi=10.1016/j.advengsoft.2019.03.005 |url=https://www.sciencedirect.com/science/article/pii/S0965997818309360?via%3Dihub}}</ref>
 
}}