This project aims to develop a comprehensive Gaussian Process Python package, which facilitates scikit-learn style of training and exploiting a Gaussian Process model.
The folder GaussianProcess contains the code to train and exploit various types of Gaussian Process models. Specifically, a user can choose the following functionalities.
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;
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;
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;
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.
A walk-through of the functionalities of the developed package related to training and exploiting a Gaussian Process model for interpolation purposes.
A walk-through of the functionalities of the developed package related to training and exploiting a Gaussian Process model for regression purposes.
Train a Gaussian Process model using an active learning scheme based on maximizing the expected prediction error.
How to use active learning to make GP model particularly accurate in the vicinity of the stability margin.
A walk-through of the functionalities of the developed package related to training and exploiting a gradient-enhanced Gaussian Process model for interpolation purposes.
Train a multi-fidelity Gaussian Process model to aggregate training data with different fidelities.