Matrice de corrélation de Pandas

Suraj Joshi 30 janvier 2023
  1. Générer une matrice de corrélation en utilisant la méthode DataFrame.corr()
  2. Visualisez la matrice de corrélation de Pandas en utilisant la méthode Matplotlib.pyplot.matshow()
  3. Visualisez la matrice de corrélation de Pandas en utilisant la méthode seaborn.heatmap()
  4. Visualisez la matrice de corrélation en utilisant la propriété DataFrame.style
Matrice de corrélation de Pandas

Ce tutoriel expliquera comment nous pouvons générer une matrice de corrélation en utilisant la méthode DataFrame.corr() et visualiser la matrice de corrélation en utilisant la méthode pyplot.matshow() dans Matplotlib.

import pandas as pd

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

print(employees_df, "\n")

Production :

       Name  Age  Weight(KG)  Height(meters)  Salary($)
0  Jonathan   20          65            1.60       3200
1      Will   22          75            1.70       3500
2   Michael   29          80            1.85       4000
3      Liva   20          60            1.69       2090
4       Sia   20          63            1.80       2500
5     Alice   21          70            1.75       3600

Nous utiliserons la DataFrame employees_df pour expliquer comment nous pouvons générer et visualiser une matrice de corrélation.

Générer une matrice de corrélation en utilisant la méthode DataFrame.corr()

import pandas as pd

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

print("The DataFrame of Employees is:")
print(employees_df, "\n")

corr_df = employees_df.corr()
print("The correlation DataFrame is:")
print(corr_df, "\n")

Production :

The DataFrame of Employees is:
       Name  Age  Weight(KG)  Height(meters)  Salary($)
0  Jonathan   20          65            1.60       3200
1      Will   22          75            1.70       3500
2   Michael   29          80            1.85       4000
3      Liva   20          60            1.69       2090
4       Sia   20          63            1.80       2500
5     Alice   21          70            1.75       3600

The correlation DataFrame is:
                     Age  Weight(KG)  Height(meters)  Salary($)
Age             1.000000    0.848959        0.655252   0.695206
Weight(KG)      0.848959    1.000000        0.480998   0.914861
Height(meters)  0.655252    0.480998        1.000000   0.285423
Salary($)       0.695206    0.914861        0.285423   1.000000

Il génère un DataFrame avec des valeurs de corrélation entre chaque colonne et une colonne sur deux dans le DataFrame.

Les valeurs de corrélation seront uniquement calculées entre les colonnes avec des valeurs numériques. Par défaut, la méthode corr() utilise la méthode Pearson pour calculer le coefficient de corrélation. Nous pouvons également utiliser d’autres méthodes comme Kendall et Spearman pour calculer le coefficient de corrélation en spécifiant la valeur du paramètre method dans la méthode corr.

Visualisez la matrice de corrélation de Pandas en utilisant la méthode Matplotlib.pyplot.matshow()

import pandas as pd
import matplotlib.pyplot as plt

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

corr_df = employees_df.corr(method="pearson")

plt.matshow(corr_df)
plt.show()

Production :

visualiser la matrice de corrélation en utilisant la méthode matshow

Il trace la matrice de corrélation générée à partir du DataFrame employees_df en utilisant la fonction matshow() dans le paquet Matplotlib.pyplot.

Visualisez la matrice de corrélation de Pandas en utilisant la méthode seaborn.heatmap()

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

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

corr_df = employees_df.corr(method="pearson")

plt.figure(figsize=(8, 6))
sns.heatmap(corr_df, annot=True)
plt.show()

Production :

visualisation de la matrice de corrélation à l’aide de la méthode de la carte thermique de la mer

Il trace la matrice de corrélation générée à partir du DataFrame employees_df en utilisant la fonction heatmap() dans le paquet seaborn.

Visualisez la matrice de corrélation en utilisant la propriété DataFrame.style

import pandas as pd

employees_df = pd.DataFrame(
    {
        "Name": ["Jonathan", "Will", "Michael", "Liva", "Sia", "Alice"],
        "Age": [20, 22, 29, 20, 20, 21],
        "Weight(KG)": [65, 75, 80, 60, 63, 70],
        "Height(meters)": [1.6, 1.7, 1.85, 1.69, 1.8, 1.75],
        "Salary($)": [3200, 3500, 4000, 2090, 2500, 3600],
    }
)

corr_df = employees_df.corr(method="pearson")

corr_df.style.background_gradient(cmap="coolwarm")

Production :

Visualiser la matrice de corrélation en utilisant la propriété de style de l’objet DataFrame

La propriété style de l’objet DataFrame corr_df renvoie un objet Styler. Nous pouvons visualiser l’objet DataFrame en utilisant le background_gradient pour l’objet Styler.

Cette méthode ne peut générer que des figures dans le notebook IPython.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn