La visualisation des données consiste à représenter les données de manière graphique à l’aide d’éléments visuels tels que des diagrammes, des graphiques, des tracés et des tableaux de bord. Elle facilite l’interprétation des données complexes pour les parties prenantes ou un public non technique, qui peuvent ainsi s’en servir pour prendre des décisions.
En machine learning (ML), la visualisation va au-delà de la création d’un tableau de bord ou d’un rapport. Elle intervient dans la construction, le débogage et l’amélioration des modèles de ML. Elle sert à examiner les données avant l’entraînement, à surveiller ce qui se passe pendant celui-ci et, après l’évaluation, à analyser ce qui a bien ou mal fonctionné. Elle relève davantage de l’investigation que de la présentation.
Dans la pratique, ces deux aspects se recoupent. Un bon spécialiste du machine learning ou de la science des données utilise la visualisation des données pour ses propres besoins, afin de repérer les problèmes et d’optimiser les modèles, mais aussi pour expliquer les résultats aux autres et renforcer leur confiance dans les sorties des modèles.
La visualisation des données en machine learning influe directement sur la qualité de vos modèles, les décisions que vous prenez et la compréhension de votre travail par les autres.
La visualisation intervient tout au long du workflow de ML, de la réception des données brutes à l’évaluation finale du modèle. Voici comment elle intervient à chaque étape. Les techniques de visualisation mentionnées à chaque étape seront détaillées dans les sections suivantes.
Avant de commencer toute analyse, vous devez comprendre les données avec lesquelles vous allez travailler. Cela suppose de vérifier la présence de valeurs manquantes, de types de données incohérents et d’enregistrements en double, car tout problème structurel dans les données à ce stade faussera la suite du travail sans que vous vous en aperceviez. Les cartes thermiques des valeurs manquantes, les graphiques de répartition des types de données et les graphiques de fréquence des enregistrements donnent une vision rapide et fiable de l’état des données avant que vous ne consacriez du temps à les exploiter.
L’analyse exploratoire des données permet de comprendre la structure, la distribution et les relations au sein du jeu de données avant toute construction de modèle. Elle utilise des histogrammes, des nuages de points, des matrices de corrélation, des boîtes à moustaches et des matrices de nuages de points pour faire apparaître des structures, des anomalies et des relations que les chiffres bruts seuls ne révèlent pas. L’EDA est par nature itérative : vous visualisez les données, formulez une hypothèse, la testez, puis visualisez de nouveau les données jusqu’à bien comprendre ce qu’elles révèlent.
Une fois les données brutes comprises, vous commencez à transformer et à sélectionner les caractéristiques pour le modèle. Visualiser les données à ce stade vous permet de vérifier que vos transformations produisent les effets attendus et vous aide à déterminer les caractéristiques réellement utiles. Comprendre les graphiques de distribution, les graphiques d’importance des caractéristiques ou le comportement des caractéristiques selon les groupes cibles permet de remplacer un prétraitement arbitraire par des choix clairement justifiables.
Pendant l’entraînement du modèle de machine learning, la visualisation ne sert plus à examiner les données, mais à suivre le processus d’apprentissage du modèle. Des graphiques comme les courbes d’apprentissage ou de perte révèlent si le modèle progresse, plafonne ou présente un surapprentissage. Ces informations permettent d’affiner les hyperparamètres, d’ajuster la régularisation ou de modifier la durée de l’entraînement avant la fin du traitement.
Après l’entraînement, la visualisation permet de dépasser un simple chiffre d’exactitude pour comprendre réellement les performances du modèle. Les matrices de confusion, les courbes ROC, les courbes précision-rappel et les graphiques des résidus révèlent chacun un aspect différent du comportement du modèle. Ils détaillent les performances par classe, selon les seuils et sur toute l’étendue des valeurs prédites : vous savez ainsi non seulement à quel point le modèle est performant, mais aussi où il réussit et où il montre ses limites.
Pour comprendre les différents types de visualisation des données utilisés en machine learning, il faut raisonner en termes de cas d’utilisation, et pas seulement de noms de graphiques. En voici une présentation structurée.
Un histogramme montre la distribution d’une seule caractéristique numérique. Il répartit les valeurs en classes sur l’axe des abscisses et indique sur l’axe des ordonnées le nombre de points de données dans chaque classe. En Python, tracer un histogramme à l’aide d’outils comme matplotlib ou seaborn permet de voir rapidement si la distribution d’une caractéristique semble normale, asymétrique à droite, bimodale ou presque uniforme.
Chaque forme de distribution suggère une étape de prétraitement différente. Par exemple, un histogramme des prix de produits peut montrer que la plupart se situent sous 50 USD, avec une longue traîne allant jusqu’à 500 USD. Cette distribution suggère qu’il serait utile d’appliquer une transformation logarithmique à la caractéristique avant de l’utiliser dans un modèle.
Les nuages de points représentent deux variables numériques sur les axes des abscisses et des ordonnées, chaque observation étant représentée par un point. Ils permettent de repérer des relations linéaires comme non linéaires, d’identifier les regroupements de points et de détecter les valeurs aberrantes éloignées du reste des données. Par exemple, un graphique représentant le prix de vente des logements en fonction de leur superficie peut montrer une nette tendance à la hausse jusqu’à un certain seuil de superficie, au-delà duquel les prix se stabilisent. Ce comportement mérite d’être étudié avant l’entraînement.
Une matrice de corrélation affiche la corrélation entre chaque paire de caractéristiques numériques de votre jeu de données. Représentée sous forme de carte thermique, où la couleur de chaque cellule traduit l’intensité de la corrélation, elle permet de repérer la multicolinéarité en un coup d’œil. Lors de la sélection des caractéristiques, on envisage souvent de supprimer celles dont la corrélation est égale ou supérieure à 0,95, car elles contiennent des informations redondantes.
La corrélation ne rend compte que des relations linéaires : une corrélation proche de zéro ne signifie donc pas que deux caractéristiques sont indépendantes. Par exemple, dans un jeu de données sur les logements, le « nombre total de pièces » et le « nombre total de chambres » présentent presque toujours une très forte corrélation. Conserver les deux n’apporte aucune information supplémentaire au modèle.
Les boîtes à moustaches donnent un aperçu rapide de la dispersion d’une variable en montrant la médiane, l’étendue de la partie centrale des données (l’écart interquartile) et les éventuelles données aberrantes. En machine learning, elles sont particulièrement utiles pour comparer la distribution d’une caractéristique numérique entre différents groupes cibles, par exemple les revenus des personnes ayant fait défaut sur un prêt et ceux des personnes n’ayant pas fait défaut.
Les matrices de nuages de points affichent une grille de nuages de points pour toutes les combinaisons de caractéristiques numériques du jeu de données, avec des histogrammes ou des courbes de densité sur la diagonale. La fonction pairplot() de Seaborn génère ces graphiques en une seule ligne de code. Pour les jeux de données ne dépassant pas 10 à 15 caractéristiques, les matrices de nuages de points offrent une vue d’ensemble multivariée rapide à obtenir, qu’il faudrait de nombreux graphiques individuels pour reproduire.
Dans ce contexte, les caractéristiques désignent simplement les différentes colonnes de votre jeu de données, comme l’âge, le revenu ou la fréquence d’achat. Par exemple, une matrice de nuages de points portant sur un jeu de données de ventes peut rapidement révéler que le chiffre d’affaires et le nombre d’unités vendues évoluent de façon très similaire, tandis que le taux de remise est peu lié à l’un comme à l’autre. De tels constats peuvent vous aider à déterminer les caractéristiques à conserver.
Les courbes de densité sont en quelque sorte des versions lissées des histogrammes. Elles permettent de comparer la distribution d’une caractéristique entre deux groupes. Lorsque les courbes sont très éloignées l’une de l’autre, la caractéristique a généralement un fort pouvoir prédictif. En revanche, lorsqu’elles se chevauchent, la caractéristique est moins utile.
Par exemple, si vous tracez la densité de la « fréquence d’achat » pour les clients fidèles et les clients perdus, et que les deux courbes présentent des pics nettement séparés, c’est un bon signe de l’utilité de cette caractéristique dans un modèle de prédiction de l’attrition.
Après avoir entraîné un modèle, vous pouvez extraire les scores d’importance des caractéristiques et les représenter dans un graphique à barres pour voir lesquelles comptent le plus. Les modèles fondés sur des arbres de décision en sont un exemple courant, car ils fournissent directement ces scores d’importance. Les caractéristiques de très faible importance sont souvent celles que l’on peut envisager de supprimer, et des outils comme Plotly ou matplotlib permettent de créer facilement ces graphiques, même lorsque les caractéristiques sont nombreuses.
Ces graphiques comparent la distribution d’une caractéristique avant et après une transformation (mise à l’échelle, encodage, transformation logarithmique) pour vérifier si l’étape de prétraitement a produit l’effet attendu. Cette comparaison est importante, car l’utilisation d’une caractéristique mal transformée dans un modèle peut fausser les prédictions. Une simple juxtaposition des graphiques permet de détecter ce problème avant l’entraînement.
Une courbe d’apprentissage est un type de visualisation de l’entraînement d’un modèle qui représente ses performances (exactitude ou perte) sur l’axe des ordonnées, en fonction de la taille du jeu d’entraînement ou des itérations d’entraînement sur l’axe des abscisses, avec des courbes distinctes pour l’entraînement et la validation.
Cette seule visualisation permet de diagnostiquer les deux défaillances les plus courantes des modèles de ML : le surapprentissage (un écart important entre les performances d’entraînement et de validation) et le sous-apprentissage (les deux courbes restent à un niveau bas et convergent rapidement). Grâce à la courbe d’apprentissage, vous pouvez ajuster de manière ciblée la complexité du modèle, la régularisation ou la taille du jeu d’entraînement, sans procéder à l’aveugle.
Pour les modèles de deep learning, il est courant de tracer la perte d’entraînement et la perte de validation au fil des époques. Une perte de validation qui cesse de s’améliorer ou commence à augmenter alors que la perte d’entraînement continue de diminuer indique qu’il faut interrompre l’entraînement de manière anticipée. Ces graphiques sont généralement générés en temps réel pendant l’entraînement à l’aide d’outils comme TensorBoard.
Plus généralement, les graphiques en courbes qui suivent un indicateur (exactitude, score F1, aire sous la courbe) au fil des itérations d’entraînement donnent une vision continue de l’évolution du modèle. Ils sont plus instructifs qu’un seul indicateur calculé à la fin de l’entraînement, car ils montrent la trajectoire, et pas seulement le résultat final.
Une matrice de confusion est un type de visualisation de l’évaluation d’un modèle qui présente dans une grille toutes les combinaisons d’étiquettes de classe réelles et prédites : vrais positifs, vrais négatifs, faux positifs et faux négatifs. Elle permet de voir précisément où le modèle a raison et où il se trompe.
Elle sert de base à la plupart des indicateurs de classification : la précision, le rappel et le score F1 en sont tous dérivés. Présentée sous forme de carte thermique avec des annotations indiquant les effectifs ou les pourcentages, elle permet de repérer immédiatement les défaillances pour chaque classe. Une ligne vide pour une classe critique révèle immédiatement une défaillance dans la matrice de confusion, même si l’exactitude du modèle semble bonne.
Les courbes ROC représentent le taux de vrais positifs en fonction du taux de faux positifs pour tous les seuils de classification possibles, de 0 à 1. L’aire sous la courbe (AUC) résume la capacité globale du modèle à distinguer les classes en un seul nombre : 0,5 correspond à des prédictions aléatoires et 1,0 à une discrimination parfaite. Les courbes ROC sont particulièrement utiles pour comparer plusieurs modèles ou lorsque le coût des faux positifs diffère de celui des faux négatifs. Des outils comme scikit-learn et plotly intègrent des fonctions permettant de les générer.
Lorsque votre jeu de données est fortement déséquilibré, les courbes précision-rappel donnent une image bien plus fidèle des performances du modèle que les courbes ROC. Un classificateur performant se rapproche du coin supérieur droit du graphique, en maintenant une précision élevée sans sacrifier le rappel. La courbe représente la précision sur l’axe des ordonnées en fonction du rappel sur l’axe des abscisses, pour différents seuils de décision.
Dans les domaines à forts enjeux comme le diagnostic médical ou la détection des fraudes, où manquer un cas rare est bien plus préjudiciable qu’une fausse alerte, cette courbe est souvent plus instructive que toute autre méthode.
Pour les modèles de régression, un graphique des résidus représente la différence entre les valeurs prédites et réelles (le résidu) sur l’axe des ordonnées, en fonction de la valeur prédite sur l’axe des abscisses. Les résidus devraient se répartir aléatoirement autour de zéro, sans structure discernable. Si les résidus s’étalent en éventail, dessinent systématiquement une courbe ou forment des regroupements, le modèle présente un problème structurel : il ne prend pas en compte un aspect de la relation entre les données.
Matplotlib est le socle open source sur lequel repose tout le reste. Son module « pyplot » (importé sous le nom « plt ») prend en charge toute la gamme des graphiques standard : histogrammes, nuages de points, graphiques en courbes, graphiques à barres, entre autres. Matplotlib nécessite davantage de code que les bibliothèques plus récentes, mais cela permet de contrôler précisément chaque détail : annotations, libellés des axes, disposition et dimensions des figures.
Seaborn s’appuie sur matplotlib et réduit considérablement la quantité de code répétitif à écrire. Une carte thermique, une matrice de nuages de points ou une boîte à moustaches qui nécessiterait 15 lignes de code dans matplotlib n’en demande qu’une ou deux dans seaborn. Seaborn lit directement les DataFrames pandas, ce qui en fait un outil de référence pour l’EDA dans les environnements Jupyter Notebook.
Plotly est le bon choix lorsque vos visualisations doivent être interactives. Les graphiques sont affichés en HTML, ce qui permet de survoler les points de données, de zoomer et d’afficher ou de masquer des séries. Ils sont ainsi bien plus utiles que des images statiques pour présenter des résultats aux parties prenantes dans des tableaux de bord ou des rapports web.
NumPy n’est pas un outil de visualisation à proprement parler, mais il constitue la base de presque tous les workflows de visualisation : il assure la manipulation des tableaux et la préparation des données des axes des abscisses et des ordonnées dont dépendent matplotlib et seaborn.
Yellowbrick est conçu spécialement pour l’évaluation des modèles de ML. Il fournit une interface autour de scikit-learn et génère des matrices de confusion, des courbes ROC, des courbes d’apprentissage et des graphiques d’importance des caractéristiques en un seul appel de fonction, sans le travail d’assemblage manuel nécessaire avec matplotlib.
TensorBoard couvre les besoins du deep learning. Pendant l’entraînement, il diffuse en temps réel les indicateurs d’entraînement, les courbes de perte et les graphes des modèles, nécessaires au suivi des grands jeux de données et des traitements de longue durée des réseaux de neurones.
Une visualisation efficace des données exige de choisir le bon graphique, mais aussi d’éviter les pratiques qui induisent en erreur sans que l’on s’en aperçoive.
La visualisation des données en machine learning ne se limite pas à la dernière étape : elle intervient à chaque phase d’un projet. Elle permet aux data scientists de diagnostiquer des problèmes invisibles dans un tableau, de détecter des défaillances de modèles que les indicateurs masquent, de communiquer leurs conclusions aux parties prenantes et de prendre en toute confiance des décisions fondées sur les données à chaque étape du workflow.
Prendre l’habitude de visualiser les données avec un objectif précis à chaque étape est l’un des moyens les plus simples et les plus efficaces d’améliorer à la fois la qualité de vos modèles et la clarté de votre réflexion.
Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.
Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.
Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.