Using LightGMB to predict my song skipping habits based solely on audio features

Image for post
Image for post
Image by Omid Armin


In early 2019, Spotify shared interesting statistics about their platform. Out of 35+ million songs on the service, Spotify users created over 2+ billion playlists (Oskar Stål, 2019). I thought of the analogy that our music taste is like our DNA, very diverse across 7 billion people, yet the building blocks (nucleotides/songs) are the same. As a result, inferring a user’s music taste is challenging, mostly since Spotify’s business model relies on its ability to recommend new songs.

Problem Statement

Spotify doesn’t have a dislike button, so skipping songs are the subtle cues we need to learn from to infer music taste. In this project, I use my Spotify streaming history in 2019 to build a predictive model that anticipates whether I would skip a song or not based solely on their audio features. …

Data for Change

A Monte Carlo Simulation to evaluate the change in infrastructure on ambulance response time (Case Study of the London Tower Bridge).

Image for post
Image for post
Picture shared by eroyka Pixabay (royalty free)


The efficiency of Emergency Medical Services (EMS) is a major indicator of a well-functioning health system. In this report, I compare various ambulance fleet management strategies to minimize their response time. Based on real-life data, I analyze then compare the findings of the simulation against the benchmark of EMS response time in London. Furthermore, I test the effect of varying the average speed of ambulances as well as the impact of the closure of the London Tower Bridge in the last quarter of 2016 on the average response time.


Compiling the road grid of London into a network is computationally expensive, so the approach was to coarse-grain the system to have regions (with a mean area of 1.6 km²) as the building blocks. Using the open-source Uber Movement dataset, the city was constructed with roughly 1000 regions of Greater London made up of polygon shapes. Next, creating edges between two given regions relies on the number of coordinates that their polygons share (i.e., if a pair of regions shares at least one coordinates, then they’re adjacent, and thus they’re linked with an edge). …


Taha Bouhoun

Developing data-driven solutions for mobility systems.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store