ShuaiGuo16 / Gaussian-Process-Package

A Gaussian Process package to train and exploit Gaussian Process models

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gaussian Process Python Package

This project aims to develop a comprehensive Gaussian Process Python package, which facilitates scikit-learn style of training and exploiting a Gaussian Process model.

Gaussian Process Class

The folder GaussianProcess contains the code to train and exploit various types of Gaussian Process models. Specifically, a user can choose the following functionalities.

GPInterpolator Class:

This class deals with using Gaussian Process model to interpolate functions.

  • Supported trends: 'Const', 'Linear', 'Quadratic', 'Custom';
  • Supported kernels: 'Gaussian', 'Matern-3_2', 'Matern-5_2', 'Cubic';
  • Efficient model training: implemented Adjoint method to accelerate global optimization (Multi-start approach);
  • Predict-only mode: user can manually specify model parameters, thus eliminating the need to re-train the model;
  • Automatically draw realizations from the posterior distribution of the trained Gaussian Process model;
  • Integrated with Scikit-Learn to perform cross-validation, feature transformation, etc.;
  • Implemented fast approximation of leave-one-out cross-validation error;
  • Active Learning:
    • 'EPE' --> maximum expected prediction error learning;
    • 'U' --> minimum classification error learning;

GPRegressor Class:

This class deals with using Gaussian Process model to approximate functions using noisy observations.

  • Supported trends: 'Const', 'Linear', 'Quadratic', 'Custom';
  • Supported kernels: 'Gaussian', 'Matern-3_2', 'Matern-5_2', 'Cubic';
  • Predict-only mode: user can manually specify model parameters, thus eliminating the need to re-train the model;
  • Automatical estimation of noise variance;
  • Posterior sampling;
  • Integration with Scikit-Learn;

GEGP Class:

This class deals with training and exploiting gradient-enhanced Gaussian Process model.

  • Supported trends: 'Const';
  • Supported kernels: 'Gaussian';
  • User can feed gradients of output to improve the model accuracy;
  • Predict gradients: analytically approximate the output gradients at test locations;
  • Predict-only mode: user can manually specify model parameters, thus eliminating the need to re-train the model;
  • Integration with Scikit-Learn;

Gaussian Process Tutorials

In addition to the core code, this project also provides a total of 6 tutorials to help user understand how to use the current package to train/predict with Gaussian Process models.

Tutorial 1: Gaussian Process Model for Interpolation

A walk-through of the functionalities of the developed package related to training and exploiting a Gaussian Process model for interpolation purposes.

Tutorial 2: Gaussian Process Model for Regression

A walk-through of the functionalities of the developed package related to training and exploiting a Gaussian Process model for regression purposes.

Tutorial 3: Gaussian Process Model with Active Learning

Train a Gaussian Process model using an active learning scheme based on maximizing the expected prediction error.

Tutorial 4: Gaussian Process Model for Stability Margin Approximation

How to use active learning to make GP model particularly accurate in the vicinity of the stability margin.

Tutorial 5: Gradient-Enhanced Gaussian Process Model

A walk-through of the functionalities of the developed package related to training and exploiting a gradient-enhanced Gaussian Process model for interpolation purposes.

Tutorial 6: Gaussian Process Model with Multi-fidelity Learning

Train a multi-fidelity Gaussian Process model to aggregate training data with different fidelities.

About

A Gaussian Process package to train and exploit Gaussian Process models


Languages

Language:Jupyter Notebook 97.5%Language:Python 2.5%