Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

Spotify Track Recommendation System

A music recommendation system built on the Spotify dataset, combining probabilistic user modeling with a KNN-based personalized recommender and Monte Carlo evaluation.

Overview

This project is structured in four parts:

  • Part 1 – Exploratory Analysis: Empirical 5-star probability estimation using Laplace smoothing, Bayesian inversion, and feature interaction analysis (artist, year, genre, mood, explicit content).

  • Part 2 – User Variability Modeling: Models the number of rounds until a user gives their first 5-star rating using Geometric and Beta-Geometric distributions. Includes Mann–Whitney U test comparing popular vs. niche preference groups.

  • Part 3 – Recommendation Models:

    • Model A (baseline): Non-personalized, ranks by global popularity and recency.
    • Model B (personalized): KNN over audio features + metadata using cosine similarity, with disliked-artist penalties and diversity constraints.
  • Part 4 – Monte Carlo Evaluation: Persona-based user simulation to compare models at scale. Evaluation via Hit@k, Average Rating, and Time-to-5★, with paired bootstrap confidence intervals.

Tech Stack

  • Python, pandas, NumPy, scikit-learn
  • scipy (statistical tests, optimization)
  • Spotify dataset (tracks, ratings, audio features)

About

Spotify track recommender using KNN, Beta-Geometric user modeling, and Monte Carlo evaluation. Compares personalized vs. baseline models across simulated user personas.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages