# Labs

The labs for the Gaussian Process Summer School can be downloaded here. All of the lab sheets are written in Python 3 given in Jupyter notebook format.

Details of how to set up your Python environment and on the installation of the necessary libraries are available on the Getting Started page. Ensure you have completed the setup before starting the labs.

Each lab sheet will be made available on the day of the lab, and answers for each will be made shortly after. There are also some extra work sheets, for you to explore in your own time, which give details of other uses of Gaussian processes not covered in the summer school. Answers for extra labs will be made available *after* the summer school.

## Lab 1 : Gaussian Processes Regression

This lab is designed to introduce Gaussian processes in a practical way, illustrating the concepts introduced in the first two lectures. The key aspects of Gaussian process regression are covered: the covariance function (aka kernels); sampling a Gaussian process; and the regression model. The notebook will introduce the open source Python library GPy which handles the kernels, regression and optimisation of hyperparameter, allowing us to easily access the results we want.

Lab | Answers |
---|---|

Notebook | Answers |

### Lab 1 Extra : Uncertainty Propagation

This lab is an extension on the work introduced in Lab 1 of the summer school. It is more advanced, and you should make sure you've completed Lab 1 before attempting. It is designed to demonstrate the advantage of using models when we have only a small number of observations of a latent function.

Lab | Answers |
---|---|

Notebook | available after summer school |

## Lab 2 : GPs for Non-Gaussian Likelihoods and Big Data

This lab introduces Gaussian process regression for data with non-Gaussian likelihoods, and shows how this can be applied to classification. The concept of sparse methods for Gaussian process regression is introduced for creating a scalable regression model, and this is combined with a large classification problem.

As with Lab 1, the notebook uses GPy for handling the regression model and likelihoods.

You will need to also download the `banana.csv` dataset for one of the examples in the lab.

Lab | Answers | Data |
---|---|---|

Notebook | Answers | Banana |

### Lab 2 Extra : Multi-Output GPs

This lab is introduces Gaussian process approximation of vector-valued functions, i.e. functions with multiple outputs. You should make sure you have completed Lab 2 before attempting.

You will also need to download the Olympic Sprints dataset for the examples in this notebook.

Lab | Answers | Data |
---|---|---|

Notebook | available after summer school |
Olympic Sprints |

## Lab 3 : Global Optimisation with Gaussian Processes

This lab introduces the basic concepts of Bayesian optimisation with GPyOpt. The student will have to build and compare different models and aquisition functions to solve several optimisation problems.

You will need to install `GPyOpt`

in Python:

`$ pip install GPyOpt`

See Getting Started for details on managing your Python environments

Lab | Answers |
---|---|

Notebook | Answers |

### Lab 3 Extra : Dimensionality Reduction using Gaussian Processes

This lab focusses on using Gaussian processes for unsupervised analysis. We will apply dimensionality reduction to a dataset of images and compare it to Gaussian process latent variable modeling.

Lab | Answers |
---|---|

Notebook | available after summer school |