https://github.com/johngoertz/gumbi
Gaussian Process Model Building Interface
https://github.com/johngoertz/gumbi
bayesian-inference gaussian-processes probabilistic-programming python regression
Last synced: 7 months ago
JSON representation
Gaussian Process Model Building Interface
- Host: GitHub
- URL: https://github.com/johngoertz/gumbi
- Owner: JohnGoertz
- License: apache-2.0
- Created: 2021-11-24T11:25:31.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-10T20:50:30.000Z (over 1 year ago)
- Last Synced: 2025-03-10T21:28:37.885Z (over 1 year ago)
- Topics: bayesian-inference, gaussian-processes, probabilistic-programming, python, regression
- Language: Python
- Homepage: https://JohnGoertz.github.io/Gumbi/
- Size: 19 MB
- Stars: 50
- Watchers: 2
- Forks: 1
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Gumbi: Gaussian Process Model Building Interface
[](https://mybinder.org/v2/gh/JohnGoertz/Gumbi/HEAD)
## Overview
Gumbi simplifies the steps needed to build a Gaussian Process model from tabular data. It takes care of shaping,
transforming, and standardizing data as necessary while applying best practices and sensible defaults to the
construction of the GP model itself. Taking inspiration from popular packages such as
__[Bambi](https://bambinos.github.io/bambi/main/index.html)__ and __[Seaborn](https://seaborn.pydata.org/index.html)__,
Gumbi's aim is to allow quick iteration on both model structure and prediction visualization. Gumbi is primarily designed with the experimental scientist in mind, and enabling easy implementation of Bayesian Optimization into laboratory workflows. Gumbi is primarily built
on top of __[Pymc](https://docs.pymc.io/)__, with a __[Botorch](https://botorch.org/)__ backend provided for acceleration and Bayesian Optimization.
## Quickstart
Read in some data and store it as a Gumbi `DataSet`:
```python
import gumbi as gmb
import seaborn as sns
cars = sns.load_dataset('mpg').dropna()
ds = gmb.DataSet(cars, outputs=['mpg', 'acceleration'], log_vars=['mpg', 'acceleration', 'weight', 'horsepower', 'displacement'])
```
Create a Gumbi `GP` object and fit a model that predicts *mpg* from *horsepower*:
```python
gp = gmb.GP(ds)
gp.fit(outputs=['mpg'], continuous_dims=['horsepower']);
```
Make predictions and plot!
```python
X = gp.prepare_grid()
y = gp.predict_grid()
gmb.ParrayPlotter(X, y).plot()
```
More complex GPs are also possible, such as correlated multi-input and multi-output systems. See the docs for more examples.
## Installation
### Via pip
pip install gumbi
### Bleeding edge
pip install git+git://github.com/JohnGoertz/Gumbi.git@develop
### Local developmenst
* Clone the repo and navigate to the new directory
* `git clone https://gitlab.com/JohnGoertz/gumbi gumbi`
* `cd gumbi`
* Create a new conda environment using mamba
* `conda install mamba`
* `mamba install -f dev_environment.yaml`
* Install `gumbi` via `pip` in editable/development mode
* From within the `gumbi` repo
* `pip install --editable ./`
* To update the `gumbi` module
* From within the `gumbi` repo
* `git pull`