Projects

Filter by Area

Customer Subscription Prediction (XGBoost)

Built an end-to-end ML pipeline to predict customer subscription to a bank term-deposit scheme (45k+ records). Performed feature engineering, handled class imbalance, and tuned models using Optuna.

Machine Learning Classification XGBoost Hyperparameter Tuning Feature Engineering

Sentiment Analysis with BiLSTM (NLP)

Developed a sentiment classifier using IMDB and Twitter datasets (114k+ samples). Compared Logistic Regression, Linear SVC, and a Bidirectional LSTM network. Achieved 88% test accuracy and built a real-time prediction function.

Machine Learning NLP Classification Deep Learning PyTorch

Image Clustering with UMAP + K-Means

Clustered Fashion-MNIST images using K-Means, GMM, and Agglomerative Clustering. Evaluated PCA, Autoencoders, and UMAP. Best performance achieved with UMAP + K-Means (ARI 0.49, NMI 0.65).

Data Science Clustering Dimensionality Reduction UMAP Unsupervised Learning

Insurance Cost Prediction

Performed end-to-end analysis on the Medical Cost Personal Dataset (1,338 records) and built multiple regression models to predict insurance charges. Compared linear models, XGBoost, and Random Forest using cross-validation. Final Random Forest model achieved an RMSE of 4,338, with smoker status, BMI, and age as the most influential features.

Machine Learning Regression Random Forest XGBoost EDA

Road Accident Risk Prediction

Built a machine learning model to predict accident risk using structured road and environmental data from a Kaggle competition dataset. Explored and compared multiple models, performed preprocessing, feature encoding, and train/validation splitting. Optimised an XGBoost regression model using Optuna hyperparameter tuning (50 trials), reducing RMSE to ~0.0559 on the test set.

Machine Learning Regression XGBoost Hyperparameter Tuning Feature Engineering

Movie Data Analysis & Hypothesis Testing

Performed EDA on a 10k-movie dataset, including cleaning, feature engineering, and statistical testing. Applied t-tests and ANOVA to uncover trends in movie popularity across release years, languages, and months.

Data Science EDA Hypothesis Testing Statistics Feature Engineering

Machine Unlearning Research Project

Evaluated the effectiveness of two state-of-the-art machine unlearning algorithms (SCRUB and NegGrad+) on removing data from image datasets, demonstrating their strengths under different conditions.

Machine Learning Deep Learning CNN PyTorch Research

Google Advanced Data Analytics Course

Completed a seven-course program in data analytics, statistics, and machine learning. Built interactive Tableau dashboards to analyze trends and communicate insights effectively. Developed machine learning models to classify claims using TikTok engagement data, improving understanding of content performance. For the final capstone project, performed end-to-end data analysis, including EDA, cleaning, feature engineering, and predictive modeling to forecast employee attrition and support data-driven retention strategies.

Data Science Analytics Visualization EDA Statistics

Decision Tree Generator

Developed a Decision Tree Generator that constructs and evaluates decision trees from datasets, enabling classification and prediction with interpretable results. The Decision Trees generated by this achieve similar performance to the scikit-learn implementation. The Generator has additional support for generating tree ensembles with similar accuracy as XGBoost.

Machine Learning Classification Decision Trees Ensemble Methods Algorithm Implementation

Risk Predictor

Led a team of six to develop a web-based monitoring system that supports creating teams, projects, and tasks while dynamically tracking project risks using deadlines, budgets, and sentiment analysis. Implemented user roles, privileges, and basic authentication to manage access.

Software Engineering Web Development Flask PostgreSQL Team Leadership

Parser and Evaluator

Created a parser ad lexer using JavaCC that is able to recognise and evaluate programs from a custom language. The parser can also evaluate outputs of programs made in this language. An example program would be:
DEF MAIN { ABCD(1) } ;
DEF ABCD xyz { BCD(xyz) } ;
DEF BCD xy { 2*CD(xy) } ;
DEF CD x { D(x)+EF(x) } ;
DEF D x { 10 } ;
DEF EF x { 10*x } ;
With the output being PASS 40

Software Engineering Compilers Parser Lexer JavaCC

Hive vs Hadoop Performance Analysis

Evaluated the performance difference between Hive and Hadoop solutions to query similar things from files sizes ranging from 1GB to 40GB. Implemented Hadoop queries using only MapReduce and Hive queries using HiveSQL. Created a report with key findings about memory usage, processing and preprocessing times.

Data Science Big Data Hadoop Hive Performance Analysis

Basic Intrusion Detection System

Application that uses the libpcap library to retrieve and anaylse packets. The program studies different tags in the packet to detect malicious activity such as SYN attacks, ARP cache poisoning and Blacklisted URL detection. This program was also made to be multithreaded with a 1 thread per request model.

Systems Networking Security Multithreading C

Resolution Theorem Prover

Evaluates propositional formulae and determines if a propositional proof exists. From this, it checks whether the propositional formula is a tautology.

AI Logic Theorem Proving Prolog Automated Reasoning

Gig Booking System

Developed a command-line application for booking gigs, ensuring no conflicts with venue or band schedules. Built using JDBC to connect to a PostgreSQL backend for storing all booking information.

Software Engineering JDBC PostgreSQL Database Design Java

Robot Maze Solver

Implemented various pathfinding algorithms such as BFS and A* to enable a robot to find its way through a maze. This robot could solve a variety of mazes including mazes with loops.

AI Pathfinding Search Algorithms BFS A*

Song Recommendation System

Worked in a team of 3 to create a Song Recommendation System based on the Million Songs Dataset. Performed EDA on the data to find data that would best describe similarity between songs and artists. Constructed a Machine Learning model to calculate siilarity ratings for each song. Used BFS to retrieve similar arists for faster runtime.

Machine Learning Recommendation Systems Big Data Spark EDA

House Price Prediction (Regression)

Developed a regression model to predict housing prices using structured property data. Conducted preprocessing, feature engineering, and model comparison. Achieved a test RMSE of 11,864 and analysed feature importance.

Machine Learning Regression Feature Engineering Model Comparison EDA

Pac-Man AI Agent

Built an AI agent that allowed Pac-Man to fully complete levels with various layouts and amount of ghosts. Used a range of heuristics to optimise movements to ensure timely victories.

AI Game AI Heuristics Search Algorithms Path Planning

Custom Data Structures

Created my own implementations for HashMaps, AVL trees and Linked Lists using standard C++ libraries and basic arrays.

Systems Data Structures Algorithm Implementation C++ AVL Trees