This unit seeks to acquaint students with machine learning algorithms which are important in many modern data and computer science applications. We cover topics such as kernel machines, probabilistic inference, neural networks, HMMs and emsemble models.
Akin Eker, Siddhant Bansal, Shijia Feng, Omar Emara, Saptarshi Sinha, Tianye Wang, Kal Roberts
Week | Monday lecture, 0900-1000, Queen's 1.15 | Wednesday lecture, 0900-1000, Queen's 1.15 | Thursday drop-in, 1200-1300, Queen's 1.68 | Thursday lab, Weeks 1,2: 1600-1800 MVB1.15. Weeks 3-: 1500-1800, Queen's 1.80 |
1 (w/c 16/09/24) | L01: Unit organisation, L02: Machine Learning concepts | L03: Unit topic overview, L04: Linear regression, linear discriminant and logistic regression | Drop-in | Lab01: Introduction to numpy and scikit learn |
2 (w/c 23/09/24) | L05: Introduction to Neural Networks | L06: Training Neural Networks | Drop-in | Lab02: Neural networks |
3 (w/c 30/09/24) | L07: Regression and classification trees | L08: Kernels and Support Vector Machines | Drop-in | Lab03: Trees and SVMs |
4 (w/c 07/10/24) | L09: Probabilistic Graphical Models | L10: Markov Chain Monte Carlo | Drop-in | Lab04: Probabilistic Graphical Models |
5 (w/c 14/10/24) | L11: k-means and mixtures of Gaussians | L12: The EM algorithm | Drop-in | Lab05: Mixture models, K-means and Expectation Maximisation |
6 (w/c 21/10/24) | No lecture | No lecture | in-class test 1400-1500 in MVB 2.11 | No lab |
7 (w/c 28/10/24) | L13: Sequential data (HMMs) | L14: Sequential data (LDS) | Drop-in | Lab06: Hidden Markov Models |
8 (w/c 04/11/24) | L15: Ensemble methods | Spare lecture | Drop-in | Lab07: Decision Trees and Ensemble Methods |
9 (w/c 11/11/24) | No lecture | No lecture | No drop-in | Coursework support session (1500-1700) |
10 (w/c 18/11/24) | No lecture | No lecture | No drop-in | Coursework support session (1500-1700) |
11 (w/c 25/11/24) | No lecture | No lecture | No drop-in | Coursework support session (1500-1700) |
12 (w/c 02/12/24) | Revision | Revision | No drop-in | No lab |
Most (not all) of the software we use in this unit is supplied as Python packages bundled with the Anaconda Python package manager. If you are using the machines in Queen's 180 to do the lab exercises (as opposed to using your own machine) you need to do the following to start using Anaconda.
module load
anaconda
coms30035
Anaconda Virtual Environment. To
do this type conda activate coms30035
at the
command line.
conda activate
coms30035
it should use the coms30035
virtual environment. Common ways of using Python include:
python
at the prompt to start the
Python interpreter.
python somescript.py
to execute a
Python script (in this example with the name somescript.py
).
jupyter lab
at the prompt to start JupyterLab.
jupyter lab somenotebook.ipynb
to
inspect (and possibly execute) a
JupyterLab notebook (in this example with the name somenotbook.ipynb
).
If you want to do lab exercises on your own machine then you should install Anaconda on it. If you run into installation problems then feel free to ask the Teaching Staff on the unit for help, but we can't guarantee to solve them.
All technical resources (including the labs) will be posted on the COMS30035 Github organisation. If you find any issues, please kindly raise an issue in the respective repository.