MTH786P - Machine Learning with Python - 2023/24
Topic outline
-
-
This file details the requirements of the project. Please read it with great attention
77.9 KB -
Five dataset to pick from. Select one. Important: if this is the second time that you submit a project this year, you cannot keep the same dataset used in the first submission. You need to pick one of these five.
-
Use this form to upload your codes. Upload your codes as a single zip-file that contains all relevant files. This includes the Jupyter Notebook and any additional files that you plan on using. When unzipping the file, the folder structure should be as follows:
{student_id}\
Here {student_id} refers to a folder that is named after your student id. If your student id is 123456789, the folder structure should be 123456789\ put the notebook there. Please note that the file size limit for your zip-file is 50 MB.
-
Use this form to upload the corresponding report for your final assessment. Upload it as a single pdf file that is no larger than 50 MB. Name your pdf file {student_id}.pdf. If your student id is 12345678 for example, the file name simply is 12345678.pdf.
-
-
The mid-term exam will take place in week 7 on Friday November 10th at 2pm.
Check the official timetable of the module for information about the location of the exam
-
In this module you will learn the theoretical background and will apply in practice the following methods of ML:
- Regression analysis methods
- Linear regression
- Polynomial regression
- Ridge regression
- The LASSO
- The gradient descent
- Classification methods
- The nearest neighbour classification
- Binary logistic regression
- Multinomial logistic regression
- Support vector machines
- Semi-supervised classification with graphs
-
Introductory coursework
-
105.4 KB
-
120.1 KB
-
-
Lecture (26/09, 13:00-15:00)
This week lecture will cover:
- Introduction to the module structure
- Introduction to machine learning
- Mathematical preliminaries
Chapter 1 of Lecture notes
Tutorial (29/09, 10:00-11:00)
This week tutorial will cover:
- Solutions to Coursework 0
- Q&A related to lecture materials
Exercises
Non-assessed Coursework 1
-
13.6 MB
-
195.9 KB
-
240.1 KB
-
Lecture (03/10, 13:00-15:00)
This week lecture will cover:
- Linear regression
- Polynomial regression
- Problems of underfitting and overfitting
This week reading is
Sections 2.1, 2.2 of Lecture notes
Tutorial (06/10, 10:00-11:00)
This week tutorial will cover:
- Solutions to Coursework 1
- Q&A related to lecture materials
Exercises
Non assessed coursework 2
-
2.5 MB
-
194.2 KB
-
210.0 KB
-
Lecture (10/10, 13:00-15:00)
This week lecture will cover:
- Ill-conditioned regression problems
- Ridge regression
This week reading is
Sections 2.3, 2.4 of Lecture notes
Tutorial (13/10, 10:00-11:00)
This week tutorial will cover:
- Solutions to Coursework 2
- Q&A related to lecture materials
Exercises
Non assessed coursework 3
-
1.6 MB
-
184.7 KB
-
227.0 KB
-
Lecture (17/10, 13:00-15:00)
This week lecture will cover:
- Model selection for ridge regression
- Bias-variance decomposition
- Minimisation of validation error
This week reading is
Sections 2.5, 2.6 of Lecture notes
Tutorial (20/10, 10:00-11:00)
This week tutorial will cover:
- Solutions to Coursework 3
- Q&A related to lecture materials
Exercises
Non assessed coursework 4
-
2.1 MB
-
285.5 KB
-
261.5 KB
-
Lecture (24/10, 13:00-15:00)
This week lecture will cover:
- From ridge regression to the LASSO
- Gradient descent
- Solving the LASSO via smoothing and proximal mapping
This week reading is
Sections 2.7 of Lecture notes
Tutorial (27/10, 10:00-11:00)
This week tutorial will cover:
- Solutions to Coursework 4
- Q&A related to lecture materials
Exercises
Non assessed coursework 5
-
2.9 MB
-
17.1 KB
-
23.5 KB
-
Lecture (31/10, 13:00-15:00)
This week lecture will cover:
- Deep learning with neural networks
This week reading is
Sections 2.7, 2.8 of Lecture notes
Tutorial (3/11, 10:00-11:00)
This week tutorial will cover:
- Solutions to Coursework 5
- Q&A related to lecture materials
Exercises
Non assessed coursework 6
-
20.4 MB
-
59.1 KB
-
Lecture (7/11, 13:00-15:00)
This week lecture will cover:
- Revision in preparation of the mid-term exam
Tutorial (10/11)
No tutorial this week. We will have the mid-term exam on that day!
Exercises
Courseworks and past exams
-
3.4 MB
-
86.3 KB
-
118.1 KB
-
Lecture (14/11, 13:00-15:00)
This week lecture will cover:
- Solving neural networks problems
- Classification problems vs Regression problems
- Non-parametric classification methods
This week reading is
Sections 2.8, 2.9 of Lecture notes
Tutorial (17/11, 10:00-11:00)
This week tutorial will cover:
- Solutions to Coding parts of Coursework 4, Coursework 5
- Q&A related to lecture materials
Exercises
Non assessed coursework 8
-
7.0 MB
-
45.8 KB
-
Lecture (21/11, 13:00-15:00)
This week lecture will cover:
- Classification problems vs Regression problems
- Non-parametric classification methods
- Binary logistic regression problem
This week reading is
Sections 2.9.1, 2.9.2 of Lecture notes
Tutorial (24/11, 10:00-11:00)
This week tutorial will cover:
- Solutions to Coding parts of Coursework 6
- Q&A related to lecture materials
Exercise
Non assessed coursework 9
-
2.0 MB
-
50.8 KB
-
Lectures (28/11, 13:00-15:00)
This week lecture will cover:
- Support Vector Machines
This week reading is
Sections 2.9.2, 2.9.3 of Lecture notes
Tutorial (1/12, 10:00-11:00)
This week tutorial will cover:
- Solution to Theoretical part of Coursework 7
- Q&A related to lecture materials
Exercises
Non-assessed coursework 10
-
1.9 MB
-
45.4 KB
-
Lecture (5/12, 13:00-15:00)
This week lecture will cover:
- Interpolating with graphs
This week reading is
Sections 2.9.3-2.9.5 of Lecture notes
Tutorial (8/12, 10:00-11:00)
This week tutorial will cover:
- Solution to Coding part of Coursework 8
- Q&A related to lecture materials
Exercise
Non-assessed coursework 11
-
1.4 MB
-
-
By the end of this module you will have:
- understand basic & advanced concepts in linear algebra, calculus, probability, statistical interference, mathematical modelling and optimisation
- describe the concept of supervised machine learning
- formulate representative problems for supervised machine learning and derive mathematical models to solve them
- write algorithms to solve real-world supervised machine learning problems
- process and interpret data
- work as part of a team on the solution of real-world, supervised machine learning problems
- write scientific reports
- understand basic & advanced concepts in linear algebra, calculus, probability, statistical interference, mathematical modelling and optimisation
-
The first assessment is a written exam in week 7.
The exam will focus on the theoretical aspects of the first 6 weeks of the module, and will be based on the theoretical exercises in the coursework as well as questions addressed in the lectures. Many students might be surprised by the theoretical focus of the midterm exam. Do not fall for this trap! Passing the course requires acquiring both a theoretical and a practical understanding of the material and the former will be examined in this midterm exam.
This midterm exam counts 40% towards the final grade.
The second assessment is a practical coding project to be submitted by 24 January 2024 (by 23:59). Upload instructions will be provided in advance. It involves the practical solution of multiple problems with Python. For this assessment you will be required to submit a short 8-page report based on your results. More details will provided after the first assessment.
This final project counts 60% towards the final grade.
Anyone who fails the module will resit the individual test(s) they have failed.
-
Lecturer: Dr. Nicola Perra
Email: n.perra@qmul.ac.uk
On-campus office: SMS Building, Room G26
Office hours Tuesdays 15:00-16:00 by request
-
-
Note that this online tutorial is also available as Jupyter notebook, see https://github.com/kuleshov/cs228-material/blob/master/tutorials/python/cs228-python-tutorial.ipynb.
-
We use the Anaconda distribution to run Python 3, as it is easy to install and comes with most packages we need. To install Anaconda, go to the linked url and get the Python installer for your OS - make sure to use the newer version 3.x, not 2.x. Follow the instructions of the installer and you're done.
Warning! The installer will ask you if you want to add Anaconda to your path. Your default answer should be yes, unless you have specific reasons not to want this.
-
This is a link to the Numpy Quickstart tutorial from SciPy.org.
-
-
Feel free to get in contact, books and notes are also great resources
-
-
105.4 KB
-
120.1 KB
-
-
Lecture (12/12, 13:00-15:00)
This week lecture will cover:
- Interpretation of logistic regressions
- Decision trees
Tutorial (15/12, 10:00-11:00)
This week tutorial will cover:
- Solution to Coding part of Coursework 9-10
- Q&A related to lecture materials
-
2.4 MB
-
-
This file details the requirements of the project. Please read it with great attention
70.2 KB -
Five datasets to pick from. You need to pick one
-
Use this form to upload your codes. Upload your codes as a single zip-file that contains all relevant files. This includes the Jupyter Notebook and any additional files that you plan on using. When unzipping the file, the folder structure should be as follows:
{student_id}\
Here {student_id} refers to a folder that is named after your student id. If your student id is 123456789, the folder structure should be 123456789\ put the notebook there. Please note that the file size limit for your zip-file is 50 MB.
-
Use this form to upload the corresponding report for your final assessment. Upload it as a single pdf file that is no larger than 50 MB. Name your pdf file {student_id}.pdf. If your student id is 12345678 for example, the file name simply is 12345678.pdf.
-
-
-