Skip to content

Project for the Data Science PhD course of Probability

Notifications You must be signed in to change notification settings

andreaponti5/GP-BO

Repository files navigation

Gaussian Processes and Bayesian Optimization

This repository contains some basic Python code to experiment with Gaussian Processes and Bayesian Optimization using the scikit-optimize library.

Functionalities

  • Central Limit Theorem: using clt.py it is possible to empirically proof the central limit theorem. You can set the number of samples used and the bounds of data.
  • Multivariate Gaussian Distributions: with multivariate_gaussian.py you can generate a multivariate Gaussian distribution, with the countour plot and the marginal. You can set the mean and covariance of the distribution.
  • Sampling from a GP: the file gp_prior_posterior.py contains the code to sample both, from the prior and from the posterior of a Gaussian Process. You can set the data on which train the GP and the number of samples to extract.
  • Kernel functions: using kernel.py you can plot the heatmap of some kernel functions. You can set the data on which compute the covariance matrix.
  • Bayesian Optimization: the file bo.py contains the code to optimize an objective function, using Bayesian optimization provided by scikit-optimize library.

Examples

The following figures show 3 iterations of Bayesian Optimization, considering the objective function f(x) = -x*sin(x).