Statistical Machine Learning 2019


  • Cheng Soon Ong (course convener)
  • Christian Walder (second examiner)


If you fulfil official requirements but cannot automatically enrol, please email the course convener with your transcripts (including your Bachelor’s if you are a Master’s candidate). Explain why you satisfy the pre-requisites indicated in programs and courses.

To enrol in this course you must have completed COMP3670, or you must have completed all of the following: COMP1110 or COMP1140 and MATH1014 or MATH1115. Incompatible with COMP8600.

Some background in elementary statistics and probabilities, calculus, linear algebra, numerical algorithms, and programming experience. The courses in the major for Statistical Data Analytics have overlap with the topics covered in this course. Please have a look at the first tutorial sheet as an indication of the kind of mathematics and statistics that the course builds upon.


Statistical Machine Learning plays a key role in science and technology. Some of the basic questions raised are:

  • What is a good model for the available data?
  • How computationally effective can the parameters of the model be fitted to the available data?
  • How does a model perform on future data?

This course provides a broad but thorough introduction to the methods and practice of statistical machine learning. It will focus on the mathematical and statistical foundations of machine learning. Students will learn how to implement efficient machine learning algorithms on a computer based on their mathematical formulation, and to understand machine learning from first principles. Topics covered will include Bayesian inference and maximum likelihood modelling; regression, classification, density estimation, clustering, principal and independent component analysis; parametric, semi-parametric, and non-parametric models; basis functions, neural networks, kernel methods, and graphical models; deterministic and stochastic optimisation; overfitting, regularisation, and validation.

The course will use Python3 for all examples, tutorials and assignments. In particular, we will use the jupyter notebook which combines code, text, mathematics, plots and rich media into a single document. It will be provided on all computers used in the tutorials and labs.