Code Monkey home page Code Monkey logo

music-recommender-project's Introduction

Song Recommendation System Using Spotify Data

Business Case

The production company behind a successful YouTube channel for 8-bit-style covers is looking for a new way to discover what new songs to cover. The objective is to find songs similar to those currently generating most of their traffic from YouTube Suggested. They assume that sonically similar songs are likely to be of interest to the same listeners. Thus, they hired us to develop a recommendation system that utilizes sound properties to offer similar song recommendations to their team.

The Data

Link to dataset on Kaggle

To train our recommendation system, we use a dataset provided by Kaggle containing information on over 170,000 songs. Most of the dataset features refer to the musical properties of an individual song: tempo, key, acousticness, etc.

Data Cleanup and EDA

The data is incredibly clean, and ther are no missing values.

During the EDA portion of my work, I focused on exploring how music has changed over the years/decades. I was mainly interested in seeing how popular music from different years is and whether we have sufficient data from these years to build a recommender system.

It appeared that songs from the late 1990s and early 2000s had amassed the highest popularity. For my main test song, I picked Missy Elliott's "The Rain (Supa Dupa Fly)." It's a song that my clients are currently preparing for release, and it happens to be from the same era.

Methodology:

  1. Do a recommender that returns similar songs by the same artist, using cosine similarity.
  2. Build a recommender that returns similar songs from other artists where similarity is determined by sound properties (also using cosine similarity)
  3. Use the unsupervised Nearest Neighbors algorithms (both with Ball Tree and KD Tree) to return recommendations from all artists.
  4. Improve on the Nearest Neighbors by adding a cluster feature to the DataFrame and removing other less relevant features.

Results

The recommendations in the recommender using Cosine Similarity by Sound and Nearest Neighbors with Clustering are very similar. This is not surprising as both are determined primarily by sound properties; however, they use different distance metrics: cosine similarity vs. euclidean distance.

I will use both recommenders to pull recommendations for my client, then compare them side-by-side.

FUTURE WORK

  • Add genres to the mix of features and see if that improves the recommendations by the two recommenders
  • Add the ability to recommend based on multiple songs as input
  • Explore if the recommenders are more accurate for particular genres. Based on random trials, they deliver more accurate recommendations for hip-hop and R&B songs.

PRESENTATION

Download PDF here

music-recommender-project's People

Contributors

georgepask avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.