## Introduction to machine learning

- What is machine learning? (10 min)
- Supervised and unsupervised learning (6 min) [slides]
- Practical notebook: Python and NumPy [colab]

## Linear regression

- Simple linear regression (14 min) [slides]
- Vector and matrix derivatives (13 min) [slides]
- Multiple linear regression - Model and loss (16 min)
- Multiple linear regression - Optimisation (8 min) [slides]
- Polynomial regression and basis functions (15 min) [slides]
- Overfitting (10 min)
- Regularisation (15 min) [slides]
- Evaluation and interpretation (11 min) [slides]
- Practical notebook: Linear regression [colab]

## Training, validating, testing

- Training, validating and testing (18 min) [slides]

## Gaussians

- Maximum likelihood estimation (20 min) [slides]
- Multivariate Gaussian distribution (5 min) [slides]

## Classification

- Task (9 min)
- K-nearest neighbours (15 min)
- Bayes classifier and naive Bayes (17 min)
- Generative vs discriminative (8 min) [slides]

## Logistic regression

- Model and loss (14 min)
- Gradient descent - Fundamentals (11 min)
- Optimisation (7 min)
- The decision boundary and weight vector (21 min)
- Basis functions and regularisation (6 min) [slides]
- Multiclass - One-vs-rest classification (5 min)
- Multiclass - Softmax regression (15 min) [slides]

## Classification evaluation

- Accuracy, precision, recall, F1 (18 min)
- Precision, recall example (10 min) [slides]
- Practical notebook: Classification [data1, data2, data3, colab]

## Preprocessing

- Feature normalisation and scaling (14 min)
- Categorical features and categorical output (9 min) [slides]

## Decision trees

- Intro - Decision trees for classification (10 min)
- Intro - Regression trees (12 min) [slides]
- Regression trees - Model (11 min)
- Regression trees - Algorithm (18 min)
- Regression trees - Tree pruning (9 min) [slides]
- Decision trees - Classification (7 min)
- Decision trees - Algorithm (16 min)
- Decision trees - In practice (8 min) [slides]
- Practical notebook: Decision trees [data, colab]

## Ensemble methods

- Bagging (13 min)
- Random forests (7 min)
- Boosting for regression (21 min)
- AdaBoost for classification - Setup (10 min)
- AdaBoost for classification - Step-by-step (15 min)
- AdaBoost for classification - Details (11 min) [slides]

## K-means clustering

- Introduction to unsupervised learning (19 min) [slides]
- K-means clustering - Algorithm (16 min)
- K-means clustering - Details (14 min) [slides]
- Practical notebook: Clustering [data, colab]

## Principal components analysis

- Introduction (16 min)
- Mathematical background (7 min)
- Setup (17 min)
- Learning (19 min)
- Minimising reconstruction (7 min)
- Relationship to SVD (9 min)
- Steps (6 min) [slides]
- Practical notebook: Dimensionality reduction [colab]

## Frequently asked questions

*I can’t find the slides for a particular video?*For some consecutive videos, the slides are combined into a single PDF. So just download the slides for the next video in the sequence that has slides—it will have what you are looking for.*For practicals, what is the difference between the main link and the colab link?*If you click the notebook directly, then it will download the Jupyter notebook to your computer. If you click the*colab*link, then it will open the notebook directly in your browser in a Google Colab session.

## Acknowledgements

These videos are heavily inspired by three courses: the MLPR course taught by Iain Murray at the University of Edinburgh; the machine learning course taught by Greg Shakhnarovich at TTI-Chicago; and the Coursera machine learning course taught by Andrew Ng. I also consulted the textbook An Introduction to Statistical Learning, especially for examples.

## License

Herman Kamper, 2020-2021.

This work is released under a Creative Commons Attribution-ShareAlike
license (CC BY-SA 4.0).