Workshop : Ecrire ses premières requêtes SQL
Mardi 26 septembre à 19h
En ligne

Apprenez les bases de SQL avec une pro de la Data en écrivant vos premières requêtes !


S'inscrire
Retour à l'accueil du blog
Prédire si un titre sera populaire sur Spotify grâce à la Data !
2
 min
Projet data
 Publié le 
28/2/2022

Prédire si un titre sera populaire sur Spotify grâce à la Data !

Youssef et Jean-Mathieu ont réalisé la formation Data Essentials ! Ils ont décidé de faire leur projet final sur la prédiction de titre populaire sur Spotify ! À cause d'un manque de temps, ils n'ont pas pu avoir les résultats qu'ils espéraient mais ils ont compris leurs erreurs et ont pu s'améliorer !

Le Data Set utilisé

Il est nécessaire de comprendre les données de Spotify. Toutes les données présentées sont disponibles sur Internet sur un site qui s'appelle developer.spotify.com ! Il y a également une librairiePython, qui s'appelle Spoptify qui nous a permis de faire nos extract et à côté on a utilisé l'aide de la communauté Kaggle parce que, ce qu'on aurait voulu faire avec Youssef, c'était faire notre propre extract et choisir les morceaux qu'on voulait. Cependant, c’était trop compliqué dans le temps imparti.

Concernant la partie features, il y a beaucoup de données sur les morceaux en eux-mêmes : en termes de tempo, en termes de stabilité, etc. Nous, on a choisi de se concentrer sur les audio track features. Ainsi, pour un morceau donné vous avez les principales caractéristiques ci-dessous. On ne va pas toutes les faire, mais c'est d'abord la dançabilité, c’est-à-dire que Spotify va être capable de vous donner un score de 0 à 1 pour vous dire s'il estime que le titre bouge ou pas, pareil en termes d'énergie, s'il trouve que le titre est extrêmement énergique, il va mettre un score de 1 et s'il trouve qu'il est plutôt lent, il va mettre un score de 0. Autre exemple, il y a laValence, il n'y a pas de terme en français et je ne crois pas que ce soit un vrai terme en anglais. Mais ça signifie : est-ce qu’un titre donne le sourire ? Ou est ce que c'est un titre qui rend triste ?

Les features sélectionnés

 

Les Features

Du coup, ce qu'on a essayé de faire avec notre jeu de données, c'est, à partir des features qu'on a à gauche sur l'image ci-dessus, deviner le score de popularité. Le score de popularité, c'est ce que vous avez dans spotify, c'est une espèce de barre qui se remplit de 0 à 100. Et comment c'est calculé dans la vraie vie ? C'est en fonction de la date de sortie et en fonction du nombre d'écoutes. Donc, en gros, les derniers titres qui vont faire des millions d'écoutes vont avoir un score de popularité extrêmement fort, c'est peut-être la seule chose que Spotify ne vous donne pas : le nombre d'écoutes. Donc à partir des données à gauche qui, elles sont disponibles, on va essayer de prédire est-ce que notre titre va être populaire ou pas. Dans les premiers tests qu'on a faits, on a fixé la barre de popularité à 50 si c'est au dessus de 50, on considère que notre titre est populaire.

 

Illustrations des données

Pour vous illustrer les données et ce que cela peut donner sur un titre on va prendre une chanson de Dua Lipa : Love Again. C'est un extract qui a été fait en avril 2021, donc le score a pu évoluer, mais en avril, le score était de 68 et on voit en termes de dançabilité, on était à 0.65, en termes d'énergie 0.66 et en termes de valence, on était vers 0.50. C'est sûrement pas parfait, mais en tout cas, ça donne une bonne idée de ce qu’on a voulu faire !On a pu s'amuser à comparer avec Youssef sur d'autres types de données et c'est toujours assez intéressant de voir ce que l'algorithme arrive à calculer tout seul.

Illustration avec Love Again de Dua Lipa

Le modèle de prédiction

Comment on a prédit la popularité de notre data set ? On a pris le nombre de lignes : 600 000 et le nombre de colonnes : 20. Ensuite, on a choisi une taille de 100 MO. Concernant les années, ça partait de 1922 jusqu'à 2021. La date d'extract a été faite en 2021, sur un échantillon de score de 0 à 100. Donc, on a passé plus de temps (60%) sur notre Data Set à comprendre comment il fonctionnait. Ensuite, on a mis notre data set dans le RandomForest, on a passé 10% de notre temps là-dessus, car c'est la machine qui finalement fait tous les calculs.

Le Data Set retenu


Enfin, on a passé 30% du temps sur l'analyse des résultats. Les premiers résultats qu'on a eus, c'était un score au niveau du training : 0.99 et en testing : 0.75. On n’était pas très satisfaits, on pensait qu'on était over fité par rapport au training. Ensuite, comment on a joué sur le modèle ?On a ciblé les données en entrée de modèle. On a réduit le nombre défectueux de colonnes en revenant sur la cible. Car comme l'extract a été fait sur la période de 1922 à 2021, plus on descend dans le siècle, plus les scores sont à0. Parce que ce ne sont pas des titres très populaires, donc il y a eu beaucoup de valeur à 0.

Les résultats

Donc on a d'abord travaillé sur ça, pour avoir quelque chose de plus normal en terme de distribution d'échantillons. Et ensuite on a lancé notre modèle. Donc on a fait deux tableaux différents et ensuite on les a regroupés et on a eu des résultats qui ne nous paraissaient pas très bien.

Donc on est parti sur une autre piste, on a réduit le nombre de colonnes et on a joué aussi sur le seuil de popularité en pourcentage. On a modifié les paramètres de classification avec le Random Forest et on voulait modifier leClassifier mais on manquait de temps. Donc c'est des choses qu'on aurait pu tester avec des modèles un peu moins évolués ou plus évolués. Mais ce sont des pistes d'amélioration qu'on peut trouver sur le modèle. À la fin, on a eu un résultat amélioré mais on souhaitait un résultat binaire : 1 = le titre sera populaire ou 0 = le titre ne sera pas populaire. Mais nous avons appris de nos erreurs et nous avons pu nous améliorer !

 

Vous aussi vous souhaitez créer votre projet Data ? Postuler à notre formation Data Essentials 👉 jedha.co/postuler

Louana Lelong
Écrit par
Louana Lelong
 - 
Content & Event Manager

Programmes, thématiques Data, admissions,
vous avez une question ?

Prenez rendez-vous avec nos équipes