UncertaintyPlayground

A Python library that provides fast prediction intervals for regression tasks using PyTorch & GPyTorch, implementing Sparse & Variational Gaussian Process Regression and Mixed Density Networks.

Python
Machine Learning
Uncertainty Estimation
Author

Ilia Azizi

Main resources

Source Documentation Paper Hex sticker

Overview

UncertaintyPlayground provides fast and easy prediction intervals for regression tasks, built on top of PyTorch & GPyTorch. The library implements:

  • Sparse & Variational Gaussian Process Regression for Gaussian cases
  • Mixed Density Networks for multi-modal distributions

Installation

# Via PyPI
pip install uncertaintyplayground

# Development version
pip install git+https://github.com/unco3892/UncertaintyPlayground.git

Example Usage

from uncertaintyplayground.trainers.svgp_trainer import SparseGPTrainer
from uncertaintyplayground.predplot.svgp_predplot import compare_distributions_svgpr
from uncertaintyplayground.predplot.grid_predplot import plot_results_grid

# Train SVGPR model
trainer = SparseGPTrainer(
    X_train, y_train, 
    num_inducing_points=100, 
    num_epochs=30
)
trainer.train()

# Visualize predictions
plot_results_grid(
    trainer=trainer,
    compare_func=compare_distributions_svgpr,
    X_test=X_test,
    Y_test=y_test,
    indices=[900, 500],
    ncols=2
)

Citation

@misc{azizi2023uncertaintyplayground,
      title={UncertaintyPlayground: A Fast and Simplified Python Library for Uncertainty Estimation}, 
      author={Ilia Azizi},
      year={2023},
      eprint={2310.15281},
      archivePrefix={arXiv},
      primaryClass={stat.ML}
}