Giter Club home page Giter Club logo

gaussian-process-package's Introduction

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.

gaussian-process-package's People

Contributors

shuaiguo16 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.