Vous êtes sur la page 1sur 16

TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES

Travail de session – Partie 2


HS10 – Automne 2023
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

Partie 1: Observations en lien avec la popularité des morceaux sur Spotify


Première observation ‐ Distribution de la variable Popularité

En analysant le graphique de distribution de la variable Popularité, on remarque une


asymétrie marquée vers la droite, indiquant une prédominance des valeurs du côté
inférieur de l'échelle, notamment autour de la valeur 0 qui représente la plus faible
popularité. Cette observation suggère une fréquence significative de chansons moins
populaires par rapport à celles qui jouissent d'une plus grande notoriété.

La moyenne de popularité est établie à 33, ce qui signifie que, en général, les chansons
tendent à être concentrées autour de cette valeur. Cette concentration est d'autant plus
notable lorsque l'on considère l'écart‐type de 21.8, indiquant la dispersion des données
par rapport à la moyenne. La concentration autour de la moyenne suggère que la
majorité des chansons se situent dans une plage relativement restreinte de popularité,
avec une dispersion modérée par rapport à cette moyenne.

Il est pertinent de souligner que la forme de la distribution de la variable Popularité


rappelle celle d'une loi normale, avec les données étant centrées autour de la moyenne.
Cependant, l'asymétrie vers la droite indique que la queue de la distribution s'étend
davantage du côté des valeurs inférieures, impliquant une proportion plus importante de
chansons moins populaires.

Deuxième observation – Popularité moyenne par Décennie

En observant le graphique en barres, représentant la popularité moyenne des


morceaux par décennie, on constate une tendance à la hausse de la popularité
moyenne, avec une pointe notable en 2020. Cette observation suggère une
croissance continue de la popularité des morceaux sur Spotify au fil des décennies.

Plusieurs interprétations peuvent être avancées pour expliquer cette tendance.


Premièrement, l'évolution des modes de consommation de la musique au fil des
décennies pourrait jouer un rôle. Deuxièmement, les avancées technologiques dans
l'enregistrement, la production musicale et la diffusion ont rendu la musique plus
accessible, favorisant une plus grande diversité de styles musicaux et une
augmentation de la popularité globale. Enfin, l'expansion de l'industrie musicale et
la mondialisation peuvent jouer un rôle clé, contribuant à une plus grande diffusion
et à une plus grande popularité des artistes à l'échelle mondiale.

Il est essentiel de noter que cette évolution de la popularité musicale au fil des
décennies est complexe, et la prise en compte des événements culturels, sociaux et
technologiques spécifiques à chaque décennie peut fournir des informations plus
détaillées.

Page 1 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

Troisième observation – Popularité moyenne par groupe d’artistes

En examinant la popularité moyenne des morceaux d'artistes figurant dans le palmarès des 50
artistes les plus écoutés de Spotify. Le graphique à barres illustre la popularité moyenne des
artistes faisant partie ou non de cette liste Top 50.

1. Top 50 :
‐ La popularité moyenne des chansons interprétées par les artistes figurant dans le Top 50
est relativement élevée, atteignant une valeur de 60.
‐ Cela pourrait indiquer que les artistes du Top 50 ont tendance à produire des chansons plus
populaires, selon les critères de popularité utilisés dans le jeu de données.

2. Autres :
‐ En revanche, les artistes qui ne font pas partie du Top 50 ont une popularité moyenne bien
inférieure.
‐ Cela suggère qu'il existe une disparité significative entre la popularité moyenne des
chansons des artistes du Top 50 et celle des autres artistes.

En résumé, ce graphique révèle une distinction nette entre la popularité des chansons
d'artistes les plus célèbres et celles d'artistes moins renommés. En d'autres termes, une
chanson a davantage de chances d'être considérée comme populaire lorsqu'un artiste du Top
50 y participe.

Quatrième observation – Popularité moyenne selon la variable Explicite

Le boxplot pour les morceaux non explicites suggère une distribution asymétrique. La moitié
inférieure des données (quartiles 1 et 2) est concentrée entre 10 et 35, tandis que la moitié
supérieure (quartiles 3 et 4) s'étend jusqu'à environ 50, et la dispersion semble relativement
faible.

Cependant, le boxplot pour les morceaux explicites montre une distribution plus symétrique.
La moitié inférieure des données est comprise entre 39 (quartile 1) et 50 (quartile 2), tandis
que la moitié supérieure s'étend jusqu'à environ 65 (quartile 3). La dispersion semble
légèrement plus étendue que pour les morceaux non explicites.

En résumé, les boxplots suggèrent que les morceaux explicites ont tendance à avoir une
popularité moyenne plus élevée, avec une distribution plus symétrique, tandis que les
morceaux non explicites présentent une distribution plus asymétrique, concentrée dans la
partie inférieure de la plage de popularité. Les quintiles confirment cette tendance, indiquant
une plus grande variabilité dans la popularité des morceaux explicites.

Page 2 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

Partie 2: Prédire la popularité des chansons sur Spotify

La mise en place d'un modèle prédisant la popularité des chansons repose sur plusieurs étapes cruciales, allant de la préparation des données à l'évaluation des
performances du modèle.

1. Préparations pour le modèle prédictif

1.1. Objectif du modèle

L'objectif est de prédire la popularité des chansons sur Spotify (en d’autres mots, prédire la variable Popularité de notre base de données) en utilisant un algorithme
de régression logistique. Trois versions du modèle seront créées pour choisir la plus performante.

1.2. Études des Variables

Afin de bien comprendre notre jeu de donnée, on commence par faire une étude des données En Affichant les 10 premières lignes de la table Spotify. Selon le résultat,
le jeu de données présente des informations détaillées sur différentes chansons, avec des colonnes spécifiques représentant diverses caractéristiques de chaque piste.
Voici une description des colonnes :

‒ ID: Identifiant unique de chaque piste.


‒ Artistes: Liste des artistes associés à la chanson.
‒ Titre: Titre de la chanson.
‒ Durée: Durée de la chanson en millisecondes.
‒ Année: Année de sortie de la chanson.
‒ Valence: Mesure de la positivité de la chanson (0.0 représente la chanson la plus triste, et 1.0 la plus joyeuse).
‒ Acoustique: Mesure de la présence d'éléments acoustiques dans la chanson.
‒ Dansant: Mesure de la capacité de la chanson à être dansante.
‒ Énergie: Mesure de l'intensité et de l'activité perçue de la chanson.
‒ Explicite: Indique si la chanson contient un langage explicite.
‒ Instrumental: Mesure de la probabilité que la chanson soit instrumentale.
‒ Tonalité: Tonalité de la chanson (Majeur ou Mineur).
‒ Direct: Mesure de la présence d'une structure de discours direct dans les paroles.
‒ Intensité: Mesure de la densité des paroles ou de la complexité du discours.
‒ Mode: Mode de la chanson (Majeur ou Mineur).
‒ Discours: Mesure de la présence d'un discours dans les paroles.
‒ Tempo: Tempo de la chanson en battements par minute (BPM).
‒ Popularité: Mesure de la popularité de la chanson.

Page 3 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

L’analyse de ce jeu de données offre une vue détaillée sur les caractéristiques musicales et temporelles des chansons, ce qui peut être précieux pour les analystes de
données, les chercheurs en musique, ou toute personne intéressée par l'évolution de la musique au fil des ans. En voici les premières étapes:

1. Afficher le nombre de lignes et de colonnes de la dataframe. Dans ce cas, la dataframe a 170653 lignes et 18 colonnes.
2. Afficher le type de données de chaque colonne de la dataframe. Cela est utile pour comprendre la nature des données que vous manipulez. Les types incluent des
objets, des entiers et des flottants.
3. Rechercher les valeurs manquantes dans chaque colonne de la table et les compte, puis les trier par ordre décroissant du nombre de valeurs manquantes. Cela
fournit une vue d'ensemble des colonnes avec le plus grand nombre de données manquantes.
Les colonnes avec le plus de données manquantes sont 'Explicite', 'Tonalité', 'Intensité', 'Discours', 'Énergie', 'Valence', etc.
4. Rechercher les doublons en vérifiant si le nombre d'identifiants uniques (ID) est égal au nombre total de lignes. Si c'est le cas, il n'y a pas de doublons. Dans ce cas, il
n'y a aucun doublon dans la table Spotify.
5. Consulter les informations générales sur la dataframe, y compris le nombre total d'entrées non nulles et les types de données de chaque colonne. Cela peut être un
moyen rapide de vérifier la présence de valeurs manquantes et de comprendre la structure générale du jeu de données.

Ensuite, on fait une étude plus détaillée de certaines variables :


‒ Explicite
 Nombre de valeurs manquantes : Le nombre de valeurs manquantes pour la variable Explicite est de 8251. Cela indique qu'il y a 8251 observations où cette
variable n'a pas été renseignée. Les valeurs manquantes nécessiteront une attention particulière lors du traitement des données, tel que l'imputation ou la
suppression des observations correspondantes.

 Valeurs uniques : Les valeurs uniques de la variable Explicite sont Non, Oui, et NaN (pour les valeurs manquantes).

 Description statistique : Le compte total d'observations non manquantes est de 162402. Il y a deux valeurs uniques (Non et Oui). La valeur la plus fréquente est
Non, avec une fréquence de 148637. Cela suggère que la majorité des observations ont la valeur Non pour la variable Explicite.

 Graphique ‐ Compte des occurrences : Le premier graphique démontre le


nombre d'occurrences de chaque valeur unique de la variable Explicite. Il
confirme visuellement que Non est beaucoup plus fréquent que Oui.

Page 4 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

 Graphique ‐ Proportion des occurrences : Le deuxième graphique présente les


proportions des occurrences plutôt que les comptes bruts. Cela permet de
visualiser la répartition des valeurs sous forme de pourcentages. On peut voir
la proportion relative de Non et Oui dans la variable Explicite.

Interprétation :
La variable Explicite semble être une variable binaire, indiquant une caractéristique des morceaux. La forte fréquence de Non suggère un déséquilibre dans les données
vers cette catégorie.

‒ Mode
 Description statistique : Le nombre total d'observations non manquantes pour la variable Mode est de 170565.

 Il y a deux valeurs uniques pour cette variable : Major et Minor.

 La valeur la plus fréquente est Majeur, avec une fréquence de 120570. Cela indique que la majorité des observations ont la valeur Majeur pour la variable
Mode.

 Nombre de valeurs manquantes : Le nombre de valeurs manquantes pour la


variable Mode est de 88. Cela signifie qu'il y a 88 observations où la valeur de
Mode n'est pas renseignée.Graphique ‐ Compte des occurrences : Le
graphique montret le nombre d'occurrences de chaque valeur unique de la
variable Mode. Ils illustrent visuellement que Major est beaucoup plus
fréquent que l'autre catégorie.

Page 5 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

Interprétation :
La variable Mode semble être une variable avec deux catégories possibles : Major et Minor.
La fréquence élevée de Major suggère un déséquilibre dans les données vers cette catégorie.
Les 88 valeurs manquantes nécessiteront une attention particulière lors du traitement des données, que ce soit par l'imputation ou la suppression des observations
correspondantes.

‒ Durée :
 Description statistique : Le nombre total d'observations non manquantes pour la variable Durée est de 170653.

 La moyenne de la durée est d'environ 230948.3 ms.

 L'écart type (std) est d'environ 126118.4 ms, ce qui indique la dispersion des données autour de la moyenne.

 La durée minimale est de 5108 ms, le premier quartile (25%) est à environ 169827 ms, la médiane (50%) est à environ 207467 ms, le troisième quartile (75%)
est à environ 262400 ms, et la durée maximale est de 5403500 ms.

 Histogramme : L'histogramme représente graphiquement la distribution


des valeurs de la variable Durée.

Interprétation :
La variable Durée semble avoir une distribution étendue, avec une moyenne significative. La présence de valeurs élevées, comme indiqué par l'écart entre la moyenne
et le troisième quartile, suggère la présence de valeurs extrêmes.
L'histogramme permet de visualiser la concentration des valeurs autour de certaines plages. Cela peut aider à identifier des tendances dans la distribution.
La durée minimale de 5108 et la durée maximale de 5403500 indiquent une grande variabilité dans les données.

Page 6 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

‒ Analyse de la variable à prédire : "Popularité"


 Description statistique :
Nombre d'observations non manquantes : 170653
Moyenne : 0.227192
Écart type : 0.419019
Minimum : 0
Premier quartile (25%) : 0
Médiane (50%) : 0
Troisième quartile (75%) : 0
Maximum : 1
Proportion de chansons populaires (ou le score de
popularité est plus de 50) = 1 : 0.2272
Proportion de chansons non populaires (ou le score de
popularité est moins de 50) = 0 : 0.7728

 Étude des variables catégorielles en relation à la variable


“Popularité”:
Explicite : La proportion de chansons "Explicite" diffère entre
les classes de popularité.
Il y a des variations dans la distribution des chansons explicites
pour les deux classes.
Mode : La proportion des modes diffère également entre les
classes de popularité.
Les chansons en mode majeur semblent plus populaires.

Page 7 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

 Étude des variables numériques en relation à la variable


“Popularité”:
Valence : La médiane de la valence semble légèrement plus
élevée pour les chansons populaires.
Les chansons populaires montrent une variabilité plus
importante.
Acoustique : La médiane de l'acoustique est plus basse pour les
chansons populaires.
Les chansons populaires ont une plage plus large.
Dansant : La médiane de la variable "Dansant" est plus élevée
pour les chansons populaires.
Les chansons populaires ont une variabilité plus importante.
Énergie : La médiane de l'énergie est légèrement plus élevée
pour les chansons populaires.
Les chansons populaires ont une variabilité plus importante.
Instrumental : La médiane de l'instrumentalité est plus basse
pour les chansons populaires.
Les chansons populaires ont une variabilité plus importante.
Tonalité : La tonalité semble avoir une distribution similaire
entre les deux classes.

Interprétation :
La proportion de la variable cible "Popularité" est relativement équilibrée.
Les variables catégorielles telles que "Explicite" et "Mode" semblent être des facteurs influençant la popularité.
Les variables numériques, en particulier la "Valence", "Acoustique", "Dansant" et "Énergie", présentent des différences significatives entre les classes de popularité.
Cette analyse initiale fournit des indications sur les relations potentielles entre les caractéristiques du jeu de données et la variable cible "Popularité". Elle peut guider
le choix des fonctionnalités à inclure dans un modèle de prédiction de popularité et suggérer des stratégies de transformation.

1.3. Division des données

La division des données en ensembles d'entraînement, de validation et de test est une étape cruciale dans le processus de construction de modèles prédictifs. Voici
une interprétation du résultat obtenu :

 Ensemble d'entraînement (X_train, y_train) :


Nombre d'observations : 102391
Nombre de caractéristiques : 14
Cet ensemble est utilisé pour entraîner le modèle. Les modèles apprennent à partir de ces données.

 Ensemble de validation (X_val, y_val) :


Nombre d'observations : 34131
Nombre de caractéristiques : 14
Page 8 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

Cet ensemble est utilisé pour ajuster les paramètres du modèle et pour évaluer ses performances pendant l'entraînement. Il sert à prendre des décisions sur la
configuration du modèle.

 Ensemble de test (X_test, y_test) :


Nombre d'observations : 34131
Nombre de caractéristiques : 14
Cet ensemble est réservé pour évaluer la performance finale du modèle après que celui‐ci a été complètement entraîné et ajusté sur l'ensemble d'entraînement et de
validation. Il n'a pas été utilisé pendant l'entraînement pour éviter le surajustement (overfitting).

La division suit la règle communément utilisée de 60% pour l'entraînement, 20% pour la validation et 20% pour le test. Cette stratégie permet de s'assurer que le
modèle est capable de généraliser ses prédictions à de nouvelles données, tout en fournissant une évaluation fiable de sa performance.

1.4. Imputation des valeurs manquantes

Cette étape vise à garantir que le modèle puisse être formé et évalué de manière cohérente, même en présence de données manquantes. L'utilisation de la médiane
pour les variables numériques et du mode pour les variables catégorielles est une approche courante dans le processus de prétraitement des données.
 Imputation des valeurs numériques :
Variables concernées : Durée, Année, Valence, Acoustique, Dansant, Énergie, Instrumental, Tonalité, Direct, Intensité, Discours, Tempo.
Méthode d'imputation : Les valeurs manquantes sont remplacées par la médiane de l'échantillon d'entraînement. La médiane est choisie car elle est moins sensible
aux valeurs extrêmes que la moyenne.
 Imputation des valeurs catégorielles :
Variables concernées : Explicite, Mode.
Méthode d'imputation : Les valeurs manquantes sont remplacées par le mode de l'échantillon d'entraînement, c'est‐à‐dire la valeur la plus fréquente.

 Recombinaison des variables numériques et catégorielles :


Les variables numériques et catégorielles sont ensuite recombinées pour former les ensembles d'entraînement (X_train), de validation (X_val), et de test (X_test). Cette
étape est réalisée en utilisant la fonction pd.concat pour concaténer les dataframes des variables numériques et catégorielles le long de l'axe des colonnes.

Le résultat final, présenté sous la forme du dataframe X_train, montre toutes les variables (numériques et catégorielles) avec les valeurs manquantes imputées.

1.5. Encodage des variables catégorielles

L'encodage des variables catégorielles est une étape importante dans le prétraitement des données pour les modèles d'apprentissage automatique, car elle permet de
représenter de manière numérique des informations catégorielles sans introduire d'ordre artificiel entre les catégories. Cela facilite l'utilisation de ces variables dans
divers algorithmes d'apprentissage automatique.

 Encodage des variables catégorielles :


Méthode d'encodage : On utilise ColumnTransformer avec OneHotEncoder pour effectuer un encodage des variables catégorielles. Cela consiste à transformer chaque
valeur catégorielle en un vecteur binaire avec un seul bit actif (1) représentant la présence de cette valeur.

Page 9 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

 Application de l'encodage aux ensembles d'entraînement, de validation et de test :


Les transformations sont appliquées aux ensembles d'entraînement (X_train), de validation (X_val), et de test (X_test) en utilisant les mêmes paramètres d'encodage
appris à partir de l'échantillon d'entraînement. Cela garantit une cohérence dans la représentation des données entre les différents ensembles.

Les noms de colonnes sont conservés après l'encodage. Cela est important pour associer les caractéristiques aux colonnes lors de l'utilisation du modèle sur de nouvelles
données.

Les ensembles X_train, X_val et X_test sont transformés pour inclure les nouvelles colonnes générées par l'encodage one‐hot. Ces colonnes représentent les différentes
catégories des variables catégorielles d'origine, exprimées sous forme de vecteurs binaires.

1.6. Standardisation des variables explicatives (Modèle 1)

L'opération de standardisation des variables explicatives, à l'aide du RobustScaler, est une méthode qui est moins sensible aux valeurs extrêmes.
 Calibration de la standardisation :
Un objet RobustScaler est créé et calibré sur l'ensemble d'entraînement (X_train). La standardisation consiste à mettre à l'échelle les variables pour qu'elles aient une
moyenne nulle et une variance unitaire. Le RobustScaler utilise la médiane et l'écart interquartile plutôt que la moyenne et l'écart type, ce qui le rend plus robuste aux
valeurs extrêmes.

 Application de la standardisation :
La standardisation est appliquée à tous les ensembles de données : d'entraînement (X_train), de validation (X_val), et de test (X_test). Cela garantit une cohérence dans
la mise à l'échelle entre les différents ensembles.

 Conversion en DataFrame :
Les ensembles standardisés sont convertis en DataFrames en utilisant les noms de colonnes et les index conservés lors des étapes précédentes. Cela est important pour
maintenir la structure des données et faciliter l'interprétation.

Les variables explicatives (caractéristiques) dans les ensembles d'entraînement, de validation et de test ont été standardisées à l'aide du RobustScaler. Cette opération
est souvent nécessaire car elle permet de rendre les variables comparables et facilite la convergence des modèles d'apprentissage automatique, en particulier lorsqu'il
y a des valeurs atypiques ou des différences d'échelle entre les caractéristiques.

1.7. Équilibrage de l'échantillon d'entraînement (Modèle 2)

La méthode SMOTE est utilisée pour équilibrer l'échantillon d'entraînement en générant des observations de la classe minoritaire.
La variable cible (dans ce cas, "Popularité") est le critère que le modèle cherchera à prédire.

 Méthode SMOTE :
SMOTE est une technique d'oversampling qui vise à équilibrer les classes en générant des observations synthétiques de la classe minoritaire. Dans ce cas, la classe
minoritaire correspond à la "Popularité" égale à 1.
 Processus SMOTE :
Pour chaque observation de la classe minoritaire (Popularité = 1), SMOTE sélectionne K voisins les plus proches dans la même classe minoritaire.
Page 10 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

Il génère ensuite des observations synthétiques en combinant chaque observation de la classe minoritaire avec ses voisins.

Après l'application de SMOTE sur l'échantillon d'entraînement (X_train, y_train), le nouvel ensemble resample (X_resampled, y_resampled) contient autant
d'observations pour Popularité = 1 que pour Popularité = 0. Cela signifie que l'échantillon d'entraînement a été artificiellement équilibré en termes de classes cibles.
Les modèles seront entraînés sur l'échantillon équilibré (X_resampled, y_resampled) mais évalués sur l'échantillon de validation non équilibré (X_val, y_val) pour
permettre une comparaison juste avec les autres modèles.

1.8. Sélection des variables moins corrélées (Modèle 3)

L'objectif est de sélectionner un ensemble de variables explicatives qui sont corrélées avec la variable cible ("Popularité"), sans présenter une forte corrélation entre
elles.

 Analyse de Corrélation :
La corrélation entre les variables explicatives et la variable cible est mesurée à l'aide de la matrice de corrélation. Les valeurs les plus élevées (et les couleurs les plus
foncées) indiquent une corrélation plus forte :
‒ Popularité (Target Variable) : La corrélation de la variable cible avec elle‐
même est, bien sûr, 1.
‒ Année (remainder__Année) : La variable "Année" présente la plus forte
corrélation positive parmi les variables explicatives, avec un coefficient de
0.562686. Cela suggère qu'il y a une relation modérée à forte entre l'année de
sortie d'une chanson et sa popularité. Plus l'année est récente, plus la chanson
a tendance à être populaire.
‒ Acoustique (remainder__Acoustique) : La corrélation avec "Acoustique" est
aussi significative, mais moins que l'année, avec un coefficient de 0.315061.
Cela indique une relation modérée entre le caractère acoustique d'une
chanson et sa popularité.
‒ Intensité (remainder__Intensité) : La corrélation avec "Intensité" est
également notable, avec un coefficient de 0.308883. Cela suggère qu'une
intensité plus élevée dans la musique est liée à une popularité accrue.
‒ Énergie (remainder__Énergie) : La corrélation avec "Énergie" est significative,
bien que légèrement moins que "Intensité", avec un coefficient de 0.269012.
Cela suggère que des chansons énergiques ont tendance à être plus
populaires.
‒ Explicite (encoder__Explicite_Oui) : La variable binaire "Explicite" (Oui/Non)
présente une corrélation de 0.210171. Cela suggère que la popularité pourrait
être influencée par le caractère explicite des paroles.
‒ Instrumentalité (remainder__Instrumental) : La corrélation avec
"Instrumentalité" est significative mais moins forte que d'autres
caractéristiques, avec un coefficient de 0.167884.
‒ Dansant (remainder__Dansant) : La corrélation avec "Dansant" est également
significative, avec un coefficient de 0.166739.
Page 11 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

‒ Tempo (remainder__Tempo) : La variable "Tempo" présente une corrélation plus faible avec "Popularité", avec un coefficient de 0.063574.
‒ Direct (remainder__Direct) : La corrélation avec "Direct" est relativement faible, avec un coefficient de 0.060454.
‒ Mode Mineur (encoder__Mode_Mineur) : La corrélation avec le "Mode Mineur" est relativement faible, avec un coefficient de 0.043585.
‒ Discours (remainder__Discours) : La corrélation avec "Discours" est faible, avec un coefficient de 0.039094.
‒ Valence (remainder__Valence) : La corrélation avec "Valence" est faible, avec un coefficient de 0.032062.
‒ Tonalité (remainder__Tonalité) : La corrélation avec "Tonalité" est très faible, avec un coefficient de 0.008358.
‒ Durée (remainder__Durée) : La corrélation avec "Durée" est extrêmement faible, avec un coefficient de 0.004502.

Les variables telles que "Année", "Acoustique", "Intensité", "Énergie", et "Explicite" semblent avoir une influence plus importante sur la popularité des chansons, selon
les coefficients de corrélation.

 Identification des Colonnes Corrélées :

Quatre colonnes explicatives ont été identifiées comme étant fortement


corrélées entre elles. Ces colonnes sont : "remainder__Année",
"remainder__Acoustique", "remainder__Énergie", et "remainder__Intensité".
La matrice corr_matrix2 présente les coefficients de corrélation absolue entre
ces colonnes. Les valeurs élevées, proches de 1, indiquent une forte corrélation
entre les paires de colonnes. Par exemple, la corrélation entre
"remainder__Année" et "remainder__Acoustique" est de 0.608370.z
La heatmap (sns.heatmap) offre une visualisation claire des corrélations entre
les colonnes identifiées. Les valeurs annotées dans la heatmap représentent les
coefficients de corrélation. On observe que les mois et les trimestres sont
fortement corrélés entre eux, ce qui était prévisible. Cette étape vise à
identifier les corrélations élevées afin de prendre des mesures correctives.

 Suppression des Colonnes Corrélées :

La dernière étape consiste à éliminer une des deux variables fortement corrélées pour éviter la colinéarité. Cela se fait en supprimant la variable qui a moins de
corrélation avec la variable cible ("Popularité"). La sortie corr_matrix3 montre les coefficients de corrélation absolue entre ces variables et la variable cible après la
suppression.

Page 12 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

 Évaluation de l'Effet sur la Variable Cible :

Une dernière matrice de corrélation incluant la variable cible est générée pour évaluer l'impact de la sélection des variables sur la corrélation avec la variable cible.

Les colonnes identifiées comme fortement corrélées entre elles sont supprimées de l'échantillon d'entraînement, de l'ensemble de validation et de l'ensemble de test.
Ces échantillons, maintenant réduits en dimensions, seront utilisés pour entraîner le modèle 3.

Cette analyse de corrélation et de gestion des variables permet de préparer les données pour la construction d'un modèle en éliminant les effets néfastes de la
colinéarité et en conservant les variables les plus informatives pour la prédiction de la popularité des chansons.

2. Modèle Prédictif

2.1. Modèles de Régression Logistique

Trois versions du modèle de régression logistique sont entraînées :


‐ Modèle 1 : sur les données d'entraînement originales.
‐ Modèle 2 : sur les données d'entraînement équilibrées.
‐ Modèle 3 : sur les données d'entraînement sélectionnées pour être moins corrélées.

2.2. Entraînement et Calibration

Les coefficients du modèle sont calibrés à l'aide des observations des caractéristiques et de la classification de la variable cible.
 Modèle 1 (entraîné sur l'échantillon d'entraînement initial) :
Ce modèle est entraîné sur l'échantillon d'entraînement original sans aucune manipulation supplémentaire des données.
Il sert de référence pour évaluer la performance des modèles suivants qui ont été entraînés sur des données manipulées différemment.

 Modèle 2 (entraîné sur l'échantillon d'entraînement équilibré avec SMOTE) :


Ce modèle est entraîné sur l'échantillon d'entraînement après l'application de la technique SMOTE pour équilibrer les classes de la variable cible.

 Modèle 3 (entraîné sur l'échantillon d'entraînement après suppression des variables corrélées) :
Ce modèle est entraîné sur l'échantillon d'entraînement après avoir supprimé les variables explicatives fortement corrélées entre elles.
L'objectif est de voir comment la suppression de la colinéarité impacte la performance du modèle.

 Paramètre max_iter :
Le paramètre max_iter contrôle le nombre maximum d'itérations auquel le solveur a droit pour calibrer le modèle. Il est important de spécifier une valeur suffisamment
grande, en particulier lorsque le modèle est entraîné sur des données volumineuses ou complexes.

Les trois modèles logistiques sont entraînés sur des ensembles de données différents, chacun correspondant à une manipulation spécifique des données. L'objectif est
de comparer la performance de ces modèles pour déterminer quelle manipulation des données conduit à un meilleur apprentissage et à de meilleures prédictions de
la variable cible. La performance de chacun des modèles sera testée sur les échantillons de validation.

Page 13 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

3. Évaluation de Performance

3.1. Mesure de Performance et Comparaison des Modèles

La performance des modèles est évaluée en calculant l'AUC‐ROC qui mesure l'efficacité du modèle en termes de taux de vrais positifs et de faux positifs.
L'interprétation des résultats de l'évaluation de performance (AUC‐ROC) des modèles est la suivante :

 Modèle 1 entraîné sur le jeu de données original :


AUC‐ROC de validation : 0.779
Cela indique que le modèle original, sans équilibrage ou suppression de variables corrélées, a une performance décente avec un AUC‐ROC de 77.9%. Il s'agit de la
référence pour évaluer les autres modèles.

 Modèle 2 entraîné sur le jeu de données équilibré :


AUC‐ROC de validation : 0.813
Ce modèle, entraîné sur l'échantillon d'entraînement équilibré avec la technique SMOTE, montre une amélioration de la performance avec un AUC‐ROC de 81.3%. Cela
suggère que l'équilibrage des classes a contribué à une meilleure capacité du modèle à discriminer entre les classes.

 Modèle 3 entraîné sur le jeu de données moins corrélé :


AUC‐ROC de validation : 0.571
Ce modèle, entraîné sur l'échantillon d'entraînement après suppression des variables corrélées, présente une performance plus faible avec un AUC‐ROC de 57.1%. Cela
suggère que la suppression de variables corrélées a eu un impact négatif sur la capacité du modèle à discriminer entre les classes.

Le modèle 2, qui a été entraîné sur le jeu de données équilibré, est identifié comme le meilleur parmi les trois modèles, avec le plus haut AUC‐ROC de 81.3%. Cela
suggère que l'équilibrage des classes a eu un impact positif sur la capacité du modèle à généraliser et à faire des prédictions sur de nouvelles données.
4. Tester notre modèle sur notre échantillon test

Les courbes ROC des différents modèles sont comparées en calculant l'intégrale
de chaque courbe. Une valeur plus élevée indique un modèle plus performant.
Notre modèle le plus performant obtient un score de 0.808 sur notre
échantillon test.:
Le graphique de la courbe ROC illustre la performance du modèle. Une AUC‐ROC
de 0.808 indique une bonne capacité du modèle à discriminer entre les classes,
avec un taux de vrais positifs élevé par rapport au taux de faux positifs.

Page 14 sur 15
TECH30724 : INTRODUCTION À PYTHON POUR LES SCIENCES DE DONNÉES Automne 2023

Les rapports de chances (odds ratios) sont des mesures qui expriment comment le rapport des chances d'un événement change en réponse à un changement d'une
unité dans une variable explicative, toutes les autres variables étant maintenues constantes. Voici une interprétation pour chaque coefficient du modèle :
 encoder__Explicite_Oui (1.22): Si une chanson est explicite, le rapport des chances que cette chanson soit populaire est environ 1.22 fois plus élevé que celui
d'une chanson non explicite, toutes les autres variables étant constantes.
 encoder__Mode_Mineur (1.06): Si une chanson est en mode mineur, le rapport des chances qu'elle soit populaire est environ 1.06 fois plus élevé que celui
d'une chanson en mode majeur, toutes les autres variables étant constantes.
 remainder__Durée (0.96): Pour chaque augmentation d'une unité dans la durée d'une chanson, le rapport des chances qu'elle soit populaire diminue d'environ
4%, toutes les autres variables étant constantes.
 remainder__Année (39.33): Pour chaque augmentation d'une unité dans l'année de sortie de la chanson, le rapport des chances qu'elle soit populaire augmente
considérablement, d'environ 3933%, toutes les autres variables étant constantes. Cela suggère que les chansons plus récentes ont une probabilité beaucoup
plus élevée d'être populaires.
 remainder__Valence (0.89): Pour chaque augmentation d'une unité dans la valence de la chanson, le rapport des chances qu'elle soit populaire diminue
d'environ 11%, toutes les autres variables étant constantes.
 remainder__Acoustique (0.87): Pour chaque augmentation d'une unité dans l'acousticité de la chanson, le rapport des chances qu'elle soit populaire diminue
d'environ 13%, toutes les autres variables étant constantes.
 remainder__Dansant (1.19): Si une chanson est considérée comme dansante, le rapport des chances qu'elle soit populaire est environ 1.19 fois plus élevé que
celui d'une chanson non dansante, toutes les autres variables étant constantes.
 remainder__Énergie (0.79): Pour chaque augmentation d'une unité dans l'énergie de la chanson, le rapport des chances qu'elle soit populaire diminue d'environ
21%, toutes les autres variables étant constantes.
 remainder__Instrumental (0.94): Pour chaque augmentation d'une unité dans l'instrumentalité de la chanson, le rapport des chances qu'elle soit populaire
diminue d'environ 6%, toutes les autres variables étant constantes.
 remainder__Tonalité (1.00): La tonalité de la chanson n'a pas d'effet significatif sur le rapport des chances qu'elle soit populaire.
 remainder__Direct (0.90): Pour chaque augmentation d'une unité dans la caractéristique "direct" de la chanson, le rapport des chances qu'elle soit populaire
diminue d'environ 10%, toutes les autres variables étant constantes.
 remainder__Intensité (1.26): Pour chaque augmentation d'une unité dans l'intensité de la chanson, le rapport des chances qu'elle soit populaire est environ
1.26 fois plus élevé, toutes les autres variables étant constantes.
 remainder__Discours (0.93): Pour chaque augmentation d'une unité dans la caractéristique "discours" de la chanson, le rapport des chances qu'elle soit
populaire diminue d'environ 7%, toutes les autres variables étant constantes.
 remainder__Tempo (0.98): Pour chaque augmentation d'une unité dans le tempo de la chanson, le rapport des chances qu'elle soit populaire diminue d'environ
2%, toutes les autres variables étant constantes.

En résumé, ces rapports de chances fournissent des informations sur la direction et l'ampleur de l'effet de chaque variable explicative sur la probabilité d'une chanson
d'être populaire, selon le modèle de régression logistique.
Il est possible de récupérer de l'information sur notre modèle. Par exemple, l'attribut .intercept_ permet de connaître l'ordonnée à l'origine (𝛽0), c'est‐à‐dire la valeur
ajoutée à la fonction de décision pour classifier l'observation.
La valeur calculée, 1/(1+e−0.91271) ≈ 0.2864, représente la probabilité estimée qu'une observation soit classifiée comme positive (dans la catégorie "yes") par le modèle
de régression logistique. Plus spécifiquement, cette probabilité correspond à la probabilité que la variable Popularité soit égale à 1.

En conclusion, cette approche exhaustive couvre toutes les étapes essentielles, de la préparation des données à l'évaluation des modèles, permettant de choisir le
modèle optimal pour la prédiction de la variable Popularité.

Page 15 sur 15

Vous aimerez peut-être aussi