Final Year Project

Student name: Sean Brockway
Project title: Using Data Analysis and Machine Learning to predict the suitability of music for a specified purpose

Course: BSc (Hons) Computing 


Comparing the results of three different classifier algorithims using K-fold cross validation.

Data analysis has become an undeniably essential tool that has contributed to the global success of music streaming. However, there is a lack of publicly available academic sources and research exploring the relationship between audio properties, listening data and listening activity. This project aimed to explore the applications of data analysis in music and present them in a way that they can be replicated, and further exploration can be made. This project also aimed to assist the creation of tools and processes that can automate the finding of new music for a specified purpose. 

The input is an existing Spotify users playlist, the system uses the artists, genres and songs in that playlist to generate a new set of recommended music. The system then applies the trained algorithm to filter out music that is deemed “unsuitable” to exercise to and keep the music that is. The end result is a playlist of upbeat music suitable for working out to that is tailored to the existing users playlist. 


Challenges faced included implementing a solution to gather the correct data to build several datasets, experimenting with different algorithms and measuring their effectiveness and measuring the impact of different datasets to create the best results for the classifier.  


The recommended music after a classifier has removed non suitable music from the Spotify recommendations.

The project consisted of literature research, and my own research and evaluations into the best data sources and tools to use.  Tools such as MongoDB, Anaconda, Python were used to develop a classifier that could analyse the audio features of songs to predict its suitability. Several experiments were made using different data sets and different algorithms until a Random Forest Classifier using 12000 songs was chosen. The classifier was applied to 4 use cases, where recommendations for gym music was suggested based on the music in an existing playlist. The recommended songs are suitable for working out/exercising to. 

Even though streaming services have predefined playlists such as “rock workout”, “electronic workout” etc, they don’t provide playlists for working out that are tailored on a per-user basis. 


The recommended music presented via a Spotify playlist.

More work can be done to integrate the classifier with a web app to automatically create suggestions for individual users, improving the classifier by experimenting with more algorithms and data sources and applying this concept for different specified purposes. 

This system manages to achieve that to a good degree of success. In addition to this, the system can be a manipulated and modified to find music for other purposes, such as studying, relaxing, sleeping, meditating. The same process can be applied, all that would need to change would be the data used to train the classifier. 

Therefore, the project is useful, as it stands, it can be used by anyone with a Spotify playlist who want more music to exercise to. With modification it can be used to find tailored music for a variety of different purposes. Although music streaming services find new music to recommend to each individual user, it’s not for a pre-specified purpose, whereas this system aims to achieve that (and has done with workout music). 

My time at University

During my time at Edge Hill University, I have developed new skills and grown as an individual. I have developed my understanding of Java Programming and learned new skills using the Unity Engine in the Graphics & Modelling and Games Engines modules. I have learned how to build a network and understand the applications of data analytics and data science. The Big Data module had me eager to learn more, and it was because of this I chose to explore this even further with my end of year project. Using data science to investigate the relationship between two things I love, music and the gym.  

My placement year is when I grew the most, I developed workplace skills My knowledge of Web Development and tools improved drastically, at the end of the placement I was a competent Full Stack Developer working with SQL, PHP, JS/jQuery and Bootstrap CSS and HTML. Not only did I gain technical knowledge, I gained maturity and growth as a person and I felt motivated for my final year at University.  

Last updated on Last updated on Was this page helpful? Yes No Thanks for your feedback! Please tell us more: