Filter by Area
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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) } ;
With the output being
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 } ;
PASS 40
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.
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.
Evaluates propositional formulae and determines if a propositional proof exists. From this, it checks whether the propositional formula is a tautology.
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.
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.
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.
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.
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.
Created my own implementations for HashMaps, AVL trees and Linked Lists using standard C++ libraries and basic arrays.