项目作者: syrte

项目描述 :
Robust Gaussian Process with Iterative Trimming
高级语言: Jupyter Notebook
项目地址: git://github.com/syrte/robustgp.git
创建时间: 2020-05-19T18:19:59Z
项目社区:https://github.com/syrte/robustgp

开源协议:MIT License

下载


robustgp

Robust Gaussian Process Regression Based on Iterative Trimming (ITGP)

  • Nonparametric, flexible, and robust nonlinear regression based on Gaussian process.
  • Outperforming the robust Gaussian process with Student’s-t likelihood significantly in many test cases.

The Gaussian process (GP) regression can be severely biased when the data are contaminated by outliers. ITGP is a new robust GP regression algorithm that iteratively trims the most extreme data points. While the new algorithm retains the attractive properties of the standard GP as a nonparametric and flexible regression method, it can greatly improve the model accuracy for contaminated data even in the presence of extreme or abundant outliers. It is also easier to implement compared with previous robust GP variants that rely on approximate inference. Applied to a wide range of experiments with different contamination levels, the proposed method significantly outperforms the standard GP and the popular robust GP variant with the Student-t likelihood in most test cases.

Install

  1. pip install robustgp

Dependency: GPy

Quick start

One can start with examples in this notebook.

Usage

  1. from robustgp import ITGP
  2. # train ITGP
  3. res = ITGP(X, Y, alpha1=0.5, alpha2=0.975, nsh=2, ncc=2, nrw=1)
  4. gp, consistency = res.gp, res.consistency
  5. # make prediction
  6. y_avg, y_var = gp.predict(x_new)
  7. y_var *= consistency

Here gp is a GPy.core.GP object, whose usage is further illustrated here.

Benchmark

Comparison with standard Gaussian process and t-likelihood Gaussian process in terms of RMSE.
See the algorithm paper for details.

Benchmark

References

License

The MIT License