Skip to content

The PY-Music-Genre-Classifier predicts music genres based on audio features extracted from Spotify's API. The project uses supervised learning models such as RandomForest, XGBoost, and CatBoost to classify tracks into predefined genres.

Notifications You must be signed in to change notification settings

moranenzo/PY-Music-Genre-Classifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors


PY-Music-Genre-Classifier

PY-Music-Genre-Classifier est un projet qui prédit les genres musicaux en analysant les caractéristiques audio des morceaux. En utilisant des modèles d'apprentissage supervisé tels que RandomForest, XGBoost et CatBoost, ce projet classe les chansons en fonction de leurs attributs sonores, offrant ainsi une approche automatisée pour catégoriser les genres musicaux de manière précise.
Explorer »

Table des matières
  1. À propos du projet
  2. Pour commencer
  3. Utilisation
  4. Contacts
  5. Sources

À propos du projet

Ce projet repose sur la construction d'un ensemble de données combinant les informations collectées via l'API de Spotify et un second jeu de données provenant de Kaggle. Ces données contiennent des caractéristiques audio et des métadonnées de morceaux, permettant ainsi de classifier des genres musicaux. Le pipeline inclut la collecte automatisée des données, le prétraitement, ainsi que l'ingénierie des caractéristiques. Des modèles d'apprentissage supervisé tels que RandomForest, XGBoost et CatBoost sont ensuite entraînés et évalués à l'aide de métriques de performance telles que l'accuracy et le score F1, afin de garantir une prédiction précise des genres musicaux.

Fonctionnalités principales :
- Collecte des données via l'API Spotify.
- Prétraitement des données et ingénierie des caractéristiques.
- Entraînement et évaluation des modèles.

📁 Structure du Repository

Music-Genre-Classifier/
├── notebooks/
│   ├── main.ipynb              # Notebook détaillé contenant toutes les fonctions utilisées
│   ├── simplified_main.ipynb   # Notebook allégé pour une lecture et une exécution plus rapide
│   └── utils.py                # Fonctions utiles et scripts partagés
├── src/
│   ├── data_collection.py      # Script d'import des données via l'API Spotify
│   ├── data_processing.py      # Nettoyage des données brutes
│   └── train_model.py          # Entraînement du modèle de ML
├── README.md
├── requirements.txt
└── .gitignore

📊 Données

Nous avons d'abord construit notre jeu de données à l'aide de l'API Spotify. Pour chaque morceau, nous avons récupéré les caractéristiques suivantes :

  • Caractéristiques audio : danceability, energy, key, loudness, mode, speechiness, acousticness, instrumentalness, liveness, valence, tempo.
  • Métadonnées : nom du morceau, artiste, popularité, drapeau explicite, durée (ms), signature temporelle, étiquette de genre.

Les appels à l'API ont été automatisés et les données ont été enregistrées au format CSV.

Cependant comme expliqué dans les notebooks, un changement dans la politique de Spotify apparu fin Novembre 2024 nous a empeché de terminer la construction de notre dataset. Voilà pourquoi nous utilisons dans les parties data-preprocessing, feature-engineering et train-model les données issues d'un dataframe Kaggle collectées quelques années auparavant de la même manière que nous avons pu mettre en place.

📈 Approche Machine Learning

Nous avons expérimenté avec plusieurs modèles de machine learning :

  • Prétraitement des données : Gestion des valeurs manquantes, standardisation des variables numériques et encodage des données catégorielles.
  • Modèles utilisés :
    • RandomForest
    • XGBoost
    • CatBoost
  • Métriques d'évaluation : Accuracy, Précision, Rappel, Score F1.

🛠️ Conçu avec

  • Python 3
  • Pandas
  • Scikit-Learn
  • CatBoost
  • XGBoost

🚀 Pour commencer

Suivez ces étapes pour configurer le projet en local :

⚙️ Prérequis

  • Python 3.x installé
  • Bibliothèques nécessaires :
    pip install -r requirements.txt

💻 Installation

  1. Clonez le dépôt :
    git clone https://github.com/moranenzo/PY-Music-Genre-Classifier.git
  2. Accédez au répertoire du projet :
    cd PY-Music-Genre-Classifier

⚡ Utilisation

Exécutez la commande suivante pour entraîner le modèle (CatBoost par défaut):

python src/train_model.py

Exécutez la commande suivante pour évaluer le modèle :

python src/evaluate_model.py

📞 Contact

Projet : https://github.com/moranenzo/PY-Music-Genre-Classifier

📚 Sources

(retour en haut)

About

The PY-Music-Genre-Classifier predicts music genres based on audio features extracted from Spotify's API. The project uses supervised learning models such as RandomForest, XGBoost, and CatBoost to classify tracks into predefined genres.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •