10/28/2019

Data

  • Using Spotify API

  • Collect ~25000 songs in Spotify’s database

  • ‘Spotifyr’ library in R

  • 5 features which describe a particular song

    1) Acousticness
    2) Danceability
    3) Liveliness
    4) Loudness
    5) Speechiness

Data- Cont.

  • Every feature has a scale which varies from 0 to 1 except loudness.
  • Normalizing Loudness feature as it has a scale from -60db to 0db
  • Remove rows that have Nans and will use logical indexing to remove rows with a value of 0.

Problem Description

  • To understand the mood of a listener to recommend tracks based on their current mood
  • Results in enhancing the listener’s user experience
  • Example: imagine if a person gets suggestion to listen to romantic music when he is angry, it may lead to a bad user experience

Interesting part:

  • We can infer the mood of a listener based on his/her recent musical history

Analytics and Evaluation Plan

  • Classify songs by mood by using a clustering algorithm
  • Unsupervised learning algorithm
  • K-Means Clustering Algorithm
  • Elbow Method to decide number of clusters in our data

-Qualitative Results:
1.Predict the mood of a person provided the song they are listening
2.Visualize and plot clusters using ggplots and other graph packages.

-Quantitative Results:
1. Confusion matrix
2. Least error for clusters
3. F1 Scores - harmonic mean of the precision and recall