← Retourner à la liste des articles
Image blog
Auteur

Par Équipe Blent

Data Scientist

Publié le 26 avr. 2022

Catégorie Machine Learning

Seaborn : Data Visualization sous Python

La présentation des données sous forme de graphique est très importante en Data Science où l'on travaille souvent avec beaucoup de données désordonnées. Avoir la capacité de les visualiser est essentiel. En effet, cela permet de mieux comprendre les données et d'analyser plus facilement les relations entre les différentes variables.

Si vous utilisez Python pour le Machine Learning, vous avez très probablement déjà utilisé Matplotlib, une bibliothèque de Data Visualization qui permet de créer des figures et des courbes de visualisation de données de qualité. Une autre bibliothèque gratuite qui dépend de Matplotlib est Seaborn, elle offre une interface de niveau indéniable pour afficher des graphiques statistiques. Cette dernière séduit un nombre croissant de Data Scientists en raison de sa simplicité d'utilisation.

Dans cet article, nous allons détailler la notion de visualisation de données et nous allons voir comment utiliser la bibliothèque Seaborn pour créer des visualisations et des graphiques statistiques.

Qu’est-ce que la visualisation des données et pourquoi elle-est si importante ?

Les Data Scientists doivent franchir plusieurs étapes lorsqu’ils réalisent une mission : l’acquisition de données, le nettoyage de données, la visualisation de données, l’élaboration d’un modèle qui peut être utilisé pour prédire l’information future, etc. Parmi ces étapes, la visualisation de données est l'une des plus importantes.


À lire aussi : découvrez notre formation MLOps


L’objectif de cette étape est de communiquer des données ou des informations de manière claire et efficace aux lecteurs à travers une présentation visuelle de données ou d’informations. Généralement, les données sont visualisées sous la forme d’un graphique, d’une infographie, d’un diagramme ou d’une carte.

Image

En effet, la présentation des données sous forme d’images ou de graphiques permet d'obtenir un aperçu statistique de haut niveau sur la façon dont les données sont distribuées, la présence de valeurs aberrantes, les relations mathématiques entre les variables et plusieurs autres caractéristiques utiles.

Elle permet de trouver la distribution cachée des points de l'ensemble de données, d'explorer s'il existe des groupes au sein de ce dernier et de déterminer s'ils sont linéairement séparables, s'ils se chevauchent trop, etc. À partir de cette analyse initiale, on peut facilement éliminer les modèles qui ne conviennent pas à de telles données et on ne mettra en œuvre que les modèles qui conviennent, sans perdre son temps précieux et les ressources informatiques.

Il existe plusieurs bibliothèques sous Python qui permettent de transformer des données tabulaires en des graphiques simples et faciles à comprendre, par exemple Matplotlib, Plotly, GGplot, Bokeh, Altair et bien évidemment Seaborn.

Jusqu'à présent, Matplotlib était l'outil Python le plus populaire pour la Data Visualisation. Malgré ça, il y a plusieurs défauts valables à son sujet qui reviennent souvent.

Seaborn est une librairie qui vient s'ajouter à Matplotlib et corriger ces défauts en lui ajoutant de nouvelles fonctionnalités. Elle est considérée plus simple à utiliser que Matplotlib, car il offre une interface beaucoup plus intuitive.

Qu'est-ce que Seaborn et quel sont ses avantages ?

Seaborn est une librairie de visualisation de données Python basée sur Matplotlib. Elle fournit une interface plus conviviale pour la création de certaines visualisations de données, notamment les diagrammes de dispersion et les histogrammes.

Image

Seaborn est simple à apprendre et à utiliser. Elle offre une syntaxe simple et concise pour produire des graphiques de qualité. Elle fournit de nombreux avantages, par exemple :

  • Une simplicité de création de graphiques complexes : Seaborn est conçue pour améliorer l'aspect des graphiques produits par Matplotlib. L'idée est de réduire le nombre de lignes de code nécessaires pour produire des graphiques de qualité professionnelle.
  • Seaborn est entièrement compatible avec les données Pandas, ce qui n'est pas le cas pour les fonctions de Matplotlib qui ne sont pas faites pour interagir avec les Dataframes.
  • Possibilité de visualiser facilement des relations entre différentes variables : Seaborn permet de mieux comprendre les données en les visualisant, et offre de nombreuses fonctionnalités avancées, particulièrement la possibilité de regrouper des données par catégorie, de calculer des statistiques descriptives et de tracer des courbes de régression.
  • Seaborn est open source et disponible gratuitement.

Les différents types de visualisations de données avec Seaborn

Pour commencer à utiliser Seaborn, rien de plus simple, regardons comment tracer différents types de graphes:

Nous allons travailler sur un ensemble de données provenant du jeu de données Iris, qui contient des mesures de la longueur et la largeur des sépales et des pétales de trois espèces d'iris.

Nous allons commencer par importer la bibliothèque Seaborn et le jeu de données :

import seaborn as sns
sns.set()
iris = sns.load_dataset("iris")

Graphique linéaire

Lineplot est le tracé le plus populaire pour représenter une relation entre deux caractéristiques avec la possibilité de plusieurs regroupements sémantiques.

sns.lineplot( iris["sepal_length"], iris['sepal_width'])

Nous pouvons utiliser le paramètre hue pour afficher un tracé pour chaque groupe distinct selon une troisième caractéristique :

sns.lineplot(iris["sepal_length"],iris['sepal_width'],hue=iris['species'])

Ce paramètre peut être utilisé avec pratiquement tous les tracés de Seaborn.

Nuage de points

Un nuage de points est peut-être l’exemple le plus courant de la visualisation des relations entre deux ou plusieurs variables. Il s'agit tout simplement de visualiser tous les éléments d'une ou plusieurs colonnes du jeu de données en fonction d'une autre caractéristique. Chaque point montre une observation dans l’ensemble de données et ces observations sont représentées par des structures en forme de points.

sns.scatterplot(iris["sepal_length"], iris['sepal_width'])

Bar plot

Un graphique à barres est essentiellement utilisé pour agréger les données catégoriques selon certaines méthodes et par défaut, c'est la moyenne. Il peut également être compris comme une visualisation de l'action groupby selon deux variables :

sns.barplot("petal_length",  "species", data=iris)

Pairplot

Pour voir les relations entre les caractéristiques du jeu de données, on peut créer des graphiques par paire en utilisant la fonction pairplot :

sns.pairplot(iris, hue='species', height=2.5);

enter image description here

Le tracé KDE

Seaborn nous fournit aussi des fonctions pour des graphiques utiles pour l'analyse statistique. Par exemple, la fonctiondistplot permet non seulement de visualiser l'histogramme d'un échantillon, mais aussi d'estimer la distribution dont l'échantillon est issu.


À lire aussi : découvrez notre formation MLOps


sns.distplot( iris['sepal_width'], kde=True);

Joinplot

Comme pour le pairplot que nous avons vu plus tôt, nous pouvons utiliser jointplot pour montrer la distribution conjointe entre différentes caractéristiques, ainsi que les distributions marginales associées :

sns.jointplot("petal_length",  "petal_width", data=iris)

enter image description here

Le tracé conjoint peut même faire une estimation automatique de la densité du noyau et une régression :

sns.jointplot("petal_length",  "petal_width", data=iris, kind='reg')

Plusieurs autres graphiques peuvent être affichés avec Seaborn, on peut citer en guise d'exemple les graphiques Violin (violinplot), les boites à moustaches (boxplot), etc. Le code pour ces tracés est disponible dans le site de la documentation officielle de la bibliothèque.

Seaborn et Matplotlib : lequel choisir ?

Matplotlib et Seaborn sont les deux outils Python les plus populaires pour la Data Visualisation. Chacun a ses points forts et ses points faibles. Alors dans quel cas faut-il choisir l'un ou l'autre ?

Il convient de voir Seaborn comme un complément de la bibliothèque Matplotlib. Matplotlib est toujours utilisé pour des graphiques simples et un certain niveau de connaissances de cette bibliothèque est nécessaire pour modifier des tracés effectués avec Seaborn.

Seaborn propose de nombreux thèmes par défaut et une vaste variété de schémas pour la visualisation de statistiques, tandis que le côté visuel n'est pas le point fort de Matplotlib.

Ces deux outils présentent des différences dans les cas d'utilisation. Il faut choisir le meilleur outil de visualisation pour un travail particulier. Si l'on fait des statistiques, ou bien si on est en train de manipuler des DataFrames de Pandas, Seaborn est un bon choix, car il intègre de divers éléments adaptés aux tâches statistiques.

Articles similaires

Blog

20 sept. 2022

Machine Learning

Hugging Face est une startup française qui s'est fait connaître grâce à l'infrastructure NLP qu'ils ont développée. Aujourd'hui, elle est sur le point de révolutionner le domaine du Machine Learning et traitement automatique du langage naturel. Dans cet article, nous allons présenter Hugging Face et détailler les taches de base que cette librairie permet de réaliser. Nous allons également énumérer ses avantages et ses alternatifs.

Nada Belaidi

Équipe Blent

Data Scientist

Lire l'article

Blog

12 juil. 2022

Machine Learning

spaCy est une bibliothèque open-source pour le traitement avancé du langage naturel. Elle est conçue spécifiquement pour une utilisation en production et permet de construire des applications qui traitent et comprennent de grands volumes de texte.

Nada Belaidi

Équipe Blent

Data Scientist

Lire l'article

Blog

4 juil. 2022

Machine Learning

Un auto-encodeur est une structure de réseaux neuronaux profonds qui s'entraîne pour réduire la quantité de données nécessaires pour représenter une donnée d'entrée. Ils sont couramment utilisés en apprentissage automatique pour effectuer des tâches de compression de données, d'apprentissage de représentations et de détection de motifs.

Nada Belaidi

Équipe Blent

Data Scientist

Lire l'article