
This lecture introduces the field of machine learning by providing a brief summary of what the field entails and providing a brief overview of what we will be discussing.
This lecture provides a brief history behind the field of machine learning, specifically focusing on events that shaped the field and how we can learn from mistakes that were made by our predecessors.
This lecture motivates why machine learning is important and how it can positively impact most businesses.
This lecture discusses some of the general applications for which machine learning is already being used effectively to show students how much potential this field has.
This lecture provides students with an overview regarding the various elements of the machine learning pipeline. This is intended to provided them with some context when we start to discuss these elements in more detail.
This lecture explains the aspects of data collection that is vital to consider, as well as some of the common pitfalls when constructing a machine learning dataset.
This lecture discusses how one should explore a machine learning dataset to find important feature relationships and potential data quality problems.
In this lecture, I will provide a few examples of visualization techniques that can be very useful to unearth important information about a dataset which might not have been apparent when conducting a statistical evaluation of the data.
This lecture discusses a few strategies that can be employed to determine which features are likely to be important when building machine learning models.
In this lecture I demonstrate some of the data exploration and visualization techniques that we have discussed.
This lecture discusses some of the data quality problems that we should look out for when working with tabular data and how to address them.
This lecture discusses some of the data quality issues that can arise in image datasets, as well as how to address them.
This lecture discusses how one would go about cleaning textual datasets to remove certain problematic elements.
This lecture introduces some of the elements of time series data that can negatively affect model performance and how they should be adressed
This lecture will discuss how tabular data should be transformed to prepare it for model ingestion.
This lecture will discuss how one can go about preparing image datasets for model ingestion.
This lecture discusses the steps that are necessary to prepare textual data for use in language models.
In this lecture I explain the concept of dimensionality reduction and briefly explain how two popular techniques, namely PCA and LDA, work.
This lecture introduces the concept of feature engineering and provides students with examples of features that can be created for various data types to improve model performance.
This lecture presents and discusses an example of how one would go about exploring, analyzing and visualizing a dataset. Please download the homework notebook first and attempt it yourself before watching the explanation.
This lecture introduces the concept of supervised learning and provides students with insights into some of the popular supervised learning models.
This lecture introduces the concept of unsupervised learning and provides an overview of the most popular unsupervised learning models.
This lecture will contrast supervised and unsupervised learning to ensure that students understand how they differ.
This lecture explains how elements of supervised and unsupervised learning can be combined to utilize both the large unlabelled datasets, as well as the smaller labelled datasets.
This lecture introduces the concept of reinforcement learning and explains how models can learn from experiences.
This lecture introduces the field of deep learning, which is currently experience explosive growth. It explains what neural networks are and discusses some of the popular variants.
This lecture explains how linear and logistic regression models work and what some of the important underlying assumptions are.
In this lecture I discuss support vector machines and how they differ from linear and logistic regression models. We will discuss what the important considerations are when using these models.
In this lecture we introduce and discuss the K-Nearest Neighbours algorithm. We will discuss the strengths and weaknesses of KNNs and how they differ from the models discussed thus far.
This lecture will introduce the concept of tree-based models and explain how they iteratively split our dataset into smaller subsets to enable classification.
In this lecture we introduce the concept of combining multiple models in ensemble learning. We discuss various strategies for doing so, as well as why they might be beneficial.
In this lecture we shift our focus to specifically discussing tree-based ensembles, which includes the popular random forest and XGBoost models.
In this section we spend more time discussing in detail what underfitting and overfitting are, how it affects model performance and how to identify when it is occurring.
In this lecture we introduce the three data subsets that are commonly used in a machine learning project as well why we use them. We then also explain some of the strategies for creating these subsets.
In this lecture we shortly explain what data leakage is, how it negatively affects machine learning projects and how to avoid it.
In this lecture we discuss some of the strategies that can be used to optimise various model parameters during training.
In this lecture we introduce metrics that can be used to monitor models and determine how well they are performing on the dataset. We introduce different metrics that are informative for different types of problems.
In this lecture we discuss how one can go about experimenting with different hyperparameter settings, which influences how your models behave during training and inference. We specifically discuss a few strategies for finding the best hyperparameter sets for your problems.
This lecture is very similar to the hyperparameter optimization lecture and discusses how one can test various models and select the best option for your problem.
In this lecture we introduce the concept of similarity metrics, which are vital in unsupervised learning problems to be able to determine how similar various samples are. We discuss a few of the popular metrics and explain the use cases for which they are beneficial.
In this lecture we introduce a centroid-based clustering algorithm, namely K-Means. We discuss how it works, what the Expectation-Maximization algorithm is and what the strengths and weaknesses of K-Means are.
In this lecture we introduce hierarchical clustering and discuss two strategies that can be used to create hierarchical clusters. We also discuss some of the pros and cons of hierarchical clustering.
In this lecture we introduce a distribution-based clustering algorithm, namely Gaussian Mixture Models (GMMs). We will explain what Gaussians are and how they can be used to find clusters in your datasets. We will explain how they differ from the other clustering algorithms and what their strengths and weaknesses are.
In this lecture we introduce a density-based clustering algorithm, namely DBSCAN, which is very useful when working with a dataset that contains outliers. We explain how this algorithm work, as well as what its strengths and weaknesses are.
In this lecture we discuss the concept of association rule mining in more detail and introduce a few algorithms that can be used to extract association rules from our datasets.
In this lecture we spend some time discussing what anomaly detection problems are and introduce three models that can be used to find anomalous samples in our datasets.
In this lecture we will introduce the Scikit-learn library and discuss some of the built-in datasets and what they can be used for.
In this lecture we discuss how to preprocess datasets using Scikit-learn and spend some time discussing why it would be beneficial to create a preprocessing pipeline.
In this lecture we discuss one of the most useful aspects of Scikit-learn, which is its model API that allows one to build model agnostic pipelines for your projects and simply plug-and-play different models.
In this lecture we discuss how one can go about evaluating your various models in Scikit-learn.
This lecture discusses how to improve the performance of Scikit-learn models. We focus on aspects such as how to reduce the computational requirements of our machine learning solutions and how to ensure that our models meet the performance requirements to ensure that we can produce solutions in an acceptable amount of time.
In this lecture, we discuss how we can ensure model persistence once they have been trained, which allows us to save and load the models without needing to retrain them each time.
In this lecture we demonstrate how to combine the various aspects of Scikit-learn in a machine learning project.
In this lecture we provide homework that consists of using supervised learning models to solve a given classification problem. We then demonstrate what we would have done to solve the problem, which allows students to compare their approach to ours. The notebooks for this lecture can be seen in the lecture resources.
This lecture introduces the field of deep learning and shortly discusses what it is.
In this lecture we will discuss the perceptron, which is the basic building block of neural networks.
In this lecture we explain how perceptrons can be combined into much more complex models known as artificial neural networks. We also discuss various aspects of these networks, such as how to train them, how to initialize their parameters, why activation functions are of utmost importance etc.
In this lecture we discuss a specialized variant of ANNs that is intended for image data, namely convolutional neural networks. We will discuss what convolutions are and how they are used to extract features from image data.
In this lecture we discuss recurrent neural networks (RNNs) and why they are so useful for sequential datasets. We also discuss two variants known as LSTM and GRU RNNs.
In this lecture we introduce the concept of autoencoders and explain what they are used for. We also discuss how convolutional autoencoders can be used for image datasets.
In this lecture we introduce the very popular PyTorch deep learning framework and discuss the basic details regarding how one would go about building your own datasets and models. We also discuss how to then train, evaluate and use these models.
In this lecture we discuss PyTorch Lightning, which is an extension of PyTorch, which aims to remove some of the boiler plate code and adds a lot of quality of life features.
In this lecture we introduces Tensorflow and Keras, which is an alternative deep learning framework and is used by some companies instead of PyTorch. We do not go into as much detail as with PyTorch as we will mainly focus on PyTorch in this course.
In this lecture we shortly introduce and discuss Jax, which is generally used when building deep learning models that have to be highly performant. As it is complicated to build models using Jax, we advise students to avoid it until they are more comfortable with the field.
In this lecture we introduce model libraries such as HuggingFace and TorchVision and explain how they can be used to acquire complex models that have already been trained on large datasets.
In this lecture we discuss a few tools that can be useful when working with deep learning models, such as the Weights and Biases logging platform.
In this lecture we provide a demonstration of how to build custom datasets, dataloaders and models in PyTorch.
In this lecture we provide the deep learning homework, which focuses on implementing a model in PyTorch and applying it to the breast cancer recurrence dataset. The homework and solution notebooks can be found in the lecture resources.
This course will introduce students to the field of machine learning by providing a broad overview of all of the various aspects of a machine learning pipeline, as well as the various types and subfields of machine learning models. We will explain various aspects of the data pipeline, such as what to consider during data collection, how to analyze and interpret your datasets, how to create meaningful visualizations of your data and how to clean and prepare your datasets for training machine learning models. These discussions will also provide students with insights regarding how the various aspects of the data pipeline changes for different types of data, such as tabular, image, text and time series data.
Students will then learn about the various subfields of machine learning, with a particular focus on the most popular supervised and unsupervised machine learning models, as well as a few deep learning architectures. We will also discuss semi-supervised and reinforcement learning to a lesser extent. Lectures regarding specific models will aim to teach students what the core idea behind the models are, what the main differences between the various models are and what is considered to be their pros and cons. We will not provide detailed mathematical explanations regarding these models, but certain discussions provide some insights into aspects of the underlying mathematics that influence how the models work and what problems they are suitable for.
Apart from discussing data pipelines and the various types of machine learning models, this course will also provide students with the necessary information to be able to build their own machine learning solutions for basic to intermediate problems. This includes discussions of the popular machine learning frameworks in Python (Scikit-learn, PyTorch, Tensorflow and Jax), the steps that should be considered when designing a machine learning project, how to train, finetune and evaluate machine learning models in a way that will provide robust performance estimations as well as a few practical examples where machine learning models are applied to some demonstrative datasets.
There is considerable overlap between our Introduction to Machine Learning course and this course, but we discuss the various topics in more detail in this course with the aim to enable students to be able to implement their own machine learning solutions by the end of the course.