Machine Learning COM624

The module begins by establishing the fundamental principles of machine learning and data-driven problem solving. Students are introduced to the machine learning lifecycle, including problem definition, data collection, preparation, model development and evaluation. Early sessions focus on understanding the role of machine learning within artificial intelligence, exploring real-world applications and developing confidence in the Python ecosystem that underpins the practical components of the module.

Students are introduced to key Python libraries including NumPy, Pandas, Matplotlib and Scikit-Learn, learning how to load, manipulate and explore datasets. This provides the foundation for understanding different data types, database structures, exploratory data analysis (EDA), descriptive statistics and data visualisation techniques. Through practical activities, students learn to interpret patterns and relationships in data using visualisations such as histograms, scatter plots, box plots and line charts. They are also introduced to regression analysis as an initial predictive modelling technique.

Building on these foundations, the module explores data preparation and preprocessing, emphasising the importance of data quality within machine learning projects. Students examine techniques for handling missing values, feature engineering, scaling, normalisation, standardisation and binarisation. Significant attention is given to categorical data encoding methods including label encoding, ordinal encoding, one-hot encoding, binary encoding and target encoding. Students develop practical skills in preparing real-world datasets for machine learning pipelines and gain an understanding of how preprocessing decisions affect model performance.

The module then introduces time-series analysis and forecasting. Students learn how temporal data differs from conventional datasets and explore techniques for identifying trends, seasonality, cyclical behaviour and irregular variation. Practical work uses Python, Pandas, Matplotlib and Statsmodels to visualise and forecast time-series data through ARIMA models. Alongside forecasting, students are introduced to dimensionality reduction techniques including Principal Component Analysis (PCA) and Linear Discriminant Analysis (LDA), enabling them to simplify high-dimensional datasets while retaining important information.

Having established data preparation and forecasting techniques, the module moves into Unsupervised Learning. Students explore clustering and anomaly detection as methods for discovering hidden patterns in unlabelled data. Using Scikit-Learn, they implement K-Means clustering, Hierarchical Clustering and DBSCAN, learning to identify natural groupings within data and recognise unusual observations. Concepts such as distance metrics, cluster evaluation, dendrograms, density-based clustering and outlier detection are applied through practical activities involving real-world datasets.

The focus then shifts to Supervised Learning and Classification. Students learn how labelled data can be used to predict categorical outcomes in application areas such as fraud detection, medical diagnosis and customer segmentation. The delivery introduces rule-based classifiers, decision trees and Support Vector Machines (SVMs), alongside performance evaluation techniques including confusion matrices, precision, recall, F1-score and classification reports. Students also examine the challenges of class imbalance and the importance of selecting appropriate metrics when evaluating machine learning models.

The second supervised learning session develops students’ understanding of model optimisation and evaluation. Students explore concepts such as model fitting, generalisation, overfitting, underfitting and the bias-variance trade-off. They learn how to structure machine learning experiments using training, validation and testing datasets and apply cross-validation techniques to obtain reliable performance estimates. Various algorithms are introduced, including K-Nearest Neighbours (KNN), Neural Networks through Multilayer Perceptrons (MLPs), Random Forests, boosting methods and ensemble learning approaches. Hyperparameter tuning techniques such as Grid Search and Random Search are also discussed as part of model optimisation workflows.

The final stage of the module introduces Deep Learning. Students investigate Long Short-Term Memory (LSTM) networks as a specialised form of recurrent neural network designed for sequential and time-dependent data. Using TensorFlow and Keras, students learn how LSTMs support applications such as financial forecasting, budgeting systems, healthcare monitoring and time-series prediction through the use of memory cells and gating mechanisms. Practical exercises demonstrate how sequential data can be transformed into deep learning models capable of generating future predictions.

The module concludes with Convolutional Neural Networks (CNNs), providing an introduction to deep learning for computer vision. Students explore the architecture of CNNs, including convolutional layers, pooling layers, activation functions, flattening and fully connected layers. They examine influential architectures such as LeNet, AlexNet, VGGNet and ResNet, alongside modern object detection approaches including R-CNN and YOLO. Practical activities introduce the use of TensorFlow and PyTorch for image classification and computer vision problems, highlighting applications across healthcare, security, retail and autonomous systems.

Across the semester, students progressively develop a complete machine learning skillset, moving from data acquisition, exploration and preprocessing through to forecasting, clustering, classification, model optimisation and deep learning. The module integrates Python, NumPy, Pandas, Matplotlib, Scikit-Learn, Statsmodels, TensorFlow, Keras and modern deep learning frameworks to provide both theoretical understanding and practical implementation experience, preparing students to apply machine learning techniques within their software development projects and future professional practice.


This site uses Just the Docs, a documentation theme for Jekyll.