flatironinstitute / gp-shootout

Benchmark and compare large-scale Gaussian process regression methods in 1D, 2D, and 3D, from MATLAB
Other
5 stars 0 forks source link
gaussian process regression

gp-shootout

Benchmark and compare several large-scale Gaussian process regression methods in 1D, 2D, and 3D, including our implementation of the equispaced Fourier method (EFGP) described in https://arxiv.org/abs/2210.10210 and https://arxiv.org/abs/2305.11065 . We focus on posterior mean prediction (kernel ridge regression). We also generate figures and tables for the first of the above papers.

Authors: Philip R Greengard, Alex H Barnett, Manas Rachh.

Installation

git clone --recurse-submodules https://github.com/flatironinstitute/gp-shootout.git

This will also download install some submodule packages (currently: RLCM, FLAM). In addition your system must also have the following required dependencies:

Dependencies specific to methods:

To test the basic installation, start MATLAB from the top-level gp-shootout directory (which will execute startup), then within MATLAB type test_all.

Advanced: to build then test all wrapped non-MATLAB methods:

1) make sure you can call python from matlab, eg via py.sys.version, then from MATLAB run test_all_nonmatlab.

Usage

If you did not start MATLAB from the top-level directory, then run startup to add required paths and apply useful settings. You may need to addpath to FINUFFT by hand if you forgot in startup.m.

Look in drivers for example scripts. You may try to run expt for a demo.

Generating figures and tables from the paper

All are run in MATLAB R2021a or R2021b unless stated. In order of appearance in paper:

To do

Done (CHANGELOG)