Korrelations-Heatmap in Seaborn

Manav Narula 16 Juli 2021
Korrelations-Heatmap in Seaborn

Korrelation ist ein kritischer zugrunde liegender Faktor für Data Scientists. Es sagt aus, wie Variablen in einem Datensatz miteinander in Beziehung stehen und wie sie sich gegenseitig bewegen. Der Korrelationswert reicht von -1 bis +1. 0 Korrelation gibt an, dass zwei Variablen voneinander unabhängig sind. Eine positive Korrelation zeigt an, dass sich die Variablen in die gleiche Richtung bewegen, eine negative Korrelation zeigt das Gegenteil an.

Die Korrelationsmatrix können wir mit dem Modul seaborn darstellen. Es hilft, den Datensatz leicht zu verstehen und wird sehr häufig für Analysearbeiten verwendet.

In diesem Tutorial wird vorgestellt, wie die Korrelationsmatrix in Python mit der Funktion seaborn.heatmap() gezeichnet wird.

Die Heatmap wird verwendet, um Matrixwerte grafisch mit unterschiedlichen Farbtönen für unterschiedliche Werte darzustellen. Es visualisiert die Gesamtmatrix sehr anschaulich.

Im folgenden Code stellen wir eine Korrelationsmatrix mithilfe einer Heatmap in Python dar.

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())

Korrelations-Heatmap in Seaborn

Der obige Code erstellt ein grundlegendes Korrelations-Heatmap-Plot. Die Funktion corr() wird verwendet, um die Korrelationsmatrix des DataFrame zurückzugeben. Wir können mit dieser Funktion auch andere Arten von Korrelationen berechnen. Beachten Sie, dass der Farbton für jeden Wert in der Farbachsenleiste angezeigt wird.

Wir können die endgültige Figur auch mit verschiedenen Parametern anpassen. Siehe den folgenden Code.

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")

Korrelations-Heatmap in Seaborn mit verschiedenen Parametern

Beachten Sie die Verwendung so vieler Parameter. Die Argumente vmin und vmax werden verwendet, um den Maßstab für die Farbachse anzugeben. das Argument cmap ändert hier das Farbschema, das für den Plot verwendet wird. Der Parameter annot wird verwendet, um die Korrelationswerte auf den Quadraten anzuzeigen. Wir können außerdem die Parameter linewidth und linecolor verwenden, um die Ränder der Quadrate abzudunkeln und die Farbe der Ränder festzulegen. Wir können die Farbleiste mit dem Argument cbar_kws anpassen.

Beachten Sie, dass beim Entfernen der Hälfte der Daten auf einer Seite der Hauptdiagonale keine wichtigen Informationen verloren gehen, da sie wiederholt werden. Aus diesem Grund können wir auch ein dreieckiges Diagramm erstellen.

Das folgende Code-Snippet erreicht dies.

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)

Dreieckskorrelations-Heatmap in seaborn

Im obigen Code verwenden wir zuerst numpy.triu(), der das obere Dreieck der Matrix zurückgibt, und maskieren dies dann mit dem mask-Argument der heatmap()-Funktion. Ebenso können wir das untere Dreieck mit der Funktion numpy.tril() maskieren.

Eine andere interessante Darstellung, die wir erhalten können, ist, dass wir nur eine Variable abbilden und ihre Korrelation mit verschiedenen Variablen finden können.

Beispielsweise,

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")

Korrelations-Heatmap in Seaborn mit verschiedenen Variablen

Im obigen Beispiel zeichnen wir die Korrelation der Variablen Day 1 mit anderen Variablen.

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

Verwandter Artikel - Seaborn Heatmap