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())
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")
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)
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")
Im obigen Beispiel zeichnen wir die Korrelation der Variablen Day 1
mit anderen Variablen.
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