Carte thermique de corrélation dans Seaborn

Manav Narula 16 juillet 2021
Carte thermique de corrélation dans Seaborn

La corrélation est un facteur sous-jacent essentiel pour les data scientists. Il indique comment les variables d’un ensemble de données sont liées les unes aux autres et comment elles se déplacent les unes par rapport aux autres. La valeur de la corrélation va de -1 à +1. 0 La corrélation indique que deux variables sont indépendantes l’une de l’autre. Une corrélation positive indique que les variables évoluent dans le même sens, et une corrélation négative indique le contraire.

On peut tracer la matrice de corrélation à l’aide du module seaborn. Il permet de comprendre facilement le jeu de données et est très fréquemment utilisé pour les travaux d’analyse.

Ce tutoriel présentera comment tracer la matrice de corrélation en Python à l’aide de la fonction seaborn.heatmap().

La carte thermique est utilisée pour représenter graphiquement les valeurs de la matrice avec différentes nuances de couleurs pour différentes valeurs. Il visualise très clairement la matrice globale.

Dans le code ci-dessous, nous allons représenter une matrice de corrélation à l’aide d’une carte thermique en Python.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)

sns.heatmap(df.corr())

carte thermique de corrélation dans seaborn

Le code ci-dessus crée un tracé de carte thermique de corrélation de base. La fonction corr() permet de retourner la matrice de corrélation du DataFrame. Nous pouvons également calculer d’autres types de corrélations à l’aide de cette fonction. Notez que la nuance de couleur pour chaque valeur dans la barre de l’axe des couleurs.

Nous pouvons également personnaliser la figure finale en utilisant différents paramètres. Voir le code ci-dessous.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)

sns.heatmap(df.corr(), vmin=-1, vmax=+1, annot=True, cmap="coolwarm")

carte thermique de corrélation dans seaborn avec différents paramètres

Remarquez l’utilisation de tant de paramètres. Les arguments vmin et vmax sont utilisés pour spécifier l’échelle de l’axe des couleurs. l’argument cmap modifie ici le schéma de couleurs utilisé pour le tracé. Le paramètre annot permet d’afficher les valeurs de corrélation sur les carrés. Nous pouvons en outre utiliser les paramètres linewidth et linecolor pour assombrir les bordures des carrés et spécifier la couleur de la bordure. Nous pouvons personnaliser la barre de couleur en utilisant l’argument cbar_kws.

Notez que si vous supprimez la moitié des données d’un côté de la diagonale principale, vous ne perdrez aucune information importante car elle est répétée. Grâce à cela, nous pouvons également créer un tracé triangulaire.

L’extrait de code ci-dessous y parvient.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)

upp_mat = np.triu(df.corr())

sns.heatmap(df.corr(), vmin=-1, vmax=+1, annot=True, cmap="coolwarm", mask=upp_mat)

carte thermique de corrélation triangulaire dans seaborn

Dans le code ci-dessus, nous utilisons d’abord le numpy.triu(), qui renvoie le triangle supérieur de la matrice, puis nous le masquons à l’aide de l’argument mask de la fonction heatmap(). De même, nous pouvons masquer le triangle inférieur à l’aide de la fonction numpy.tril().

Une autre représentation intéressante que nous pouvons obtenir est que nous ne pouvons cartographier qu’une seule variable et trouver sa corrélation avec différentes variables.

Par example,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)

upp_mat = np.triu(df.corr())

sns.heatmap(df.corr()[["Day 1"]], vmin=-1, vmax=+1, annot=True, cmap="coolwarm")

carte thermique de corrélation dans seaborn avec différentes variables

Dans l’exemple ci-dessus, nous traçons la corrélation de la variable Day 1 avec d’autres variables.

Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Article connexe - Seaborn Heatmap