Python library for Gaussian Process Regression.

Project description

A python library for Gaussian Process Regression.

Setup GPlib

• Create and activate virtualenv (for python2) or venv (for python3)
```# for python3
python3 -m venv .env
# or for python2
python2 -m virtualenv .env

source .env/bin/activate
```
```python -m pip install --upgrade pip
```
• Install GPlib package
```python -m pip install gplib
```
• Matplotlib requires to install a backend to work interactively (See https://matplotlib.org/faq/virtualenv_faq.html). The easiest solution is to install the Tk framework, which can be found as python-tk (or python3-tk) on certain Linux distributions.

Use GPlib

• Import GPlib to use it in your python script.
```import gplib
```
• Initialize the GP with the desired modules.
```gp = gplib.GP(
mean_function=gplib.mea.Fixed(),
covariance_function=gplib.cov.SquaredExponential(),
likelihood_function=gplib.lik.Gaussian(),
inference_method=gplib.inf.ExactGaussian()
)
```
• Plot the GP.
```gplib.plot.gp_1d(gp, n_samples=10)
```
• Generate some random data.
```import numpy as np
data = {
'X': np.arange(3, 8, 1.0)[:, None],
'Y': np.random.uniform(0, 2, 5)[:, None]
}
```
• Get the posterior GP given the data.
```posterior_gp = gp.get_posterior(data)
```
• Finally plot the posterior GP.
```gplib.plot.gp_1d(posterior_gp, data, n_samples=10)
```
• There are more examples in examples/ directory. Check them out!

Develop GPlib

```git clone https://gitlab.com/ibaidev/gplib.git
cd gplib
git config user.email 'MAIL'
git config user.name 'NAME'
git config credential.helper 'cache --timeout=300'
git config push.default simple
```
• Update API documentation
```source ./.env/bin/activate
pip install Sphinx
cd docs/
sphinx-apidoc -f -o ./ ../gplib
```