Was ist explorative Datenanalyse?
Wenn Sie ein neuronales Netzwerk oder Machine Learning Algorithmus trainieren, müssen Sie immer berücksichtigen, dass die Qualität der Trainingsdaten die Qualität des Modells bestimmt.
Die Trainingsdaten, auf die Sie in der Praxis stoßen, sind in den meisten Fällen nicht sauber. Das bedeutet, dass die Daten nicht einheitliche Datenformate, fehlende Werte, Ausreißer und Daten mit sehr unterschiedlichen Wertebereichen enthalten. Kurz gesagt, die Daten wären nicht bereit, als Trainingsdaten für das KI-Modell verwendet zu werden. Aus diesem Grund müssen die Daten auf verschiedene Arten vor-verarbeitet werden.
Die eben erwähnten Probleme müssen jedoch zuerst identifiziert werden. Hier kommt die explorative Datenanalyse (EDA) ins Spiel. Die explorative Datenanalyse (EDA) ist ein wesentlicher Aspekt eines Data Science-Projekts. Explorative Datenanalyse beinhaltet die Durchführung grundlegender visueller und statistischer Analysen der Daten. Auf diese Weise erhalten Sie ein besseres Verständnis der Daten.
Sie erhalten grundlegende Informationen über die einzelnen Datenkategorien, deren Verteilung und Wertebereiche. Dadurch können Sie die zuvor genannten Probleme in den Daten erkennen und beseitigen. Daten zu verstehen, bevor Sie damit arbeiten, ist nicht nur eine gute Idee, sondern auch eine Priorität, wenn Sie beabsichtigen, KI-Modelle zu implementieren und sie mit den Daten zu trainieren.
Welchen Datensatz werden wir verwendet?
In diesem Tutorial möchte ich Ihnen die wichtigsten Schritte der exploratativen Analyse anhand eines Beispiels vorstellen. Bei dem Datensatz, den ich verwenden werden, handelt es sich um den Churn of Bank Custimers Datensatz.
Dieses künstliche Datensatz beinhaltet die Daten von 10000 Kunden einer Bank. Die Kunden werden dabei durch insgesamt 14 Attributen charakterisiert. Dieses Datensatz wird im Bereich von Data Science häufig für Übungszwecke verwendet. Eines der Ziele dabei ist die Implementierung eines KI-Modells, dass anhand dieses Datensatz die Wahrscheinlichkeit einer Kundenabwanderung vorhersagen soll.
Für dieses Tutorial werden wir uns allerdings zunächst nur auf die exploratative Datenanalyse beschränken mit dem Schwerpunkt die wichtigsten Attribute zu identifizieren, die für die Vorhersage der Kundenabwanderung eine Rolle spielen könnten.
Der Datensatz besteht aus folgenden Attributen:
- RowNumber – entspricht der Datensatznummer (Zeilennummer)
- CustomerId – Id, die zufällige Werte enthält
- Surname – Der Nachname eines Kunden
- CreditScore – Kreditwürdigkeit des Kunden
- Geography – Der Standort eines Kunden
- Gender – Geschlecht des Kunden
- Alter – Alter des Kunden
- Tenure – bezieht sich auf die Anzahl der Jahre, die der Kunde Kunde der Bank ist
- Balance – Kontostand
- NumOfProducts – bezieht sich auf die Anzahl der Produkte, die ein Kunde über die Bank gekauft hat.
- HasCrCard – gibt an, ob ein Kunde eine Kreditkarte besitzt oder nicht
- IsActiveMember – Gibt an ob der Kunde aktiv ist oder nicht
- EstimatedSalary – Geschätztes Gehalt des Kunden
- Exited – Gibt an ob der Kunde die Bank verlassen hat oder nicht.
Neben dem eigentlichen Datensatz, benötigen wir eine Reihe von Bibliotheken, die wir zunächst laden müssen. Neben python, verwenden wir die Bibliotheken pandas, matplotlib und seaborn:
Nachdem die Bibliotheken importiert wurden, können wir den Datensatz im pandas‘ DataFrame-Format laden:
1. Überblick über Daten gewinnen
Als ersten Schritt der explorativen Datenanalyse empfehle ich immer, sich einen sehr groben Überblick über die vorhandenen Daten zu verschaffen.
Zunächst könnte es von Interesse sein, das Format der geladenen Daten anzusehen:

In der Ausgabe in der Abb. 1 ist zu sehen, dass der tabellarische Datensatz aus insgesamt 10000 Zeilen und 14 Spalten besteht.
Zudem visualisiere ich immer gerne die ersten Zeilen des Datensatzes, um zu sehen, wie die Daten eigentlich aussehen:
//Visualize the first 5 Rows of the dataset
df.head

In der obigen Abbildung sehen Sie die ersten 5 Zeilen des geladenen Datensatzes. Wir sehen, dass der Datensatz in einer tabelarischen Form vorliegt. Jede einzelne Spalte in der Tabelle stellt dabei einen eindeutigen Attribut dar. (Anmerkung: Aufgrund vom Platmangel sind in der Tabelle nicht alle Attribute dargestellt.)
Im nächsten Schritt empfiehlt es sich herauszufinden, zu welchen Datentypen die einzelnen Attribute gehören:

Wie wir anhand der Ausgabe in Abb. 2 sehen liegen die Attribute im Format Integer und Float vor. Dagegen steht „object“ für das Format „String.“
Im nächsten Schritt ist es nützlich zu untersuchen ob die Tabelle fehlende Werte beinhaltet. Fehlende Werte sind in der Praxis ein häufiges Problem, denn die fehlenden Werte können natürlich nicht direkt von einen KI-Algorithmus verwendet werden.

Glücklicherweise beinhalten die Daten keine fehlenden Werte. D.h. an dieser Stelle müssen später keine weiteren Schritte gemacht werden.
An dieser Stelle wird untersucht, wie viele eindeutige Werte die einzelnen Datenkategorien im Datensatz enthalten:

In Abb. 4 ist beispielsweise zu erkennen, dass der Datensatz Personen aus insgesamt 3 Ländern enthält. Verständlicherweise hat jede der 10.000 Personen im Datensatz eine eindeutige ID. Zudem scheinen viele Familien im Datensatz zu sein, denn die 10.000 Personen im Datensatz teilen sich 2932 unterschiedliche Nachnamen.
Die Attribute „RowNumber“, „CustomerId“ und „Surname“ sind Metadaten, die für die Vorhersage des KI-Modells nicht relevant sind. Aus diesem Grund werden diese Attribute im nächsten Schritt aus dem Datensatz entfernt und die ersten 5 Zeilen ohne die genannten Attribute geplottet.

2. Univariate Analyse
Kommen wir zu einer etwas detaillierteren Analyse, nämlich der univariaten Analyse.
Die univariate Analyse ist die einfachste Form der Datenanalyse. Uni bedeutet eins und die Daten, die wir analysieren möchten, haben nur eine Variable. Genauer gesagt: Unter univariater Analyse versteht man die Visualisierung und Anwendung statistischer Methoden auf nur eine Datenkategorie aus dem Datensatz.
Für die univariate Analyse stehen mehrere grafische Methoden zur Verfügung:
- Univariate Verteilung
- Histogramm
- Box Plot
- Balkendiagramm, Kreisdiagramm
2.1 Univariate Verteilung
In der klassischen Statistik wird davon ausgegangen, dass statistische Phänomene einer bestimmten Wahrscheinlichkeitsverteilung folgen. Mit der univariaten Verteilung der kontinuierlichen Werte eines Attributs können wir die Werte des Attributs gegen seine prozentualen Anteile am Datensatz darstellen. Grundsätzlich zeichnen wir dabeieine geschätzte Wahrscheinlichkeitsverteilung der Werte des Attributes, die mit einem statistischen Verfahren, dem sogenannten Kernel Density Estimator, ermittelt wird.
Mit dem Kernel Density Estimator erhalten wir eine geschätzte, konstante Verteilung der Werte der Attribute, die uns einen sehr guten Überblick über den prozentualen Anteil der jeweiligen Attributs-Werte gibt. Und vor allem über die Wertebereiche des Attributs sowie die möglichen Ausreißer in den Daten.
Bspw. können wir die Verteilung des Attributs „Alter“ visuel darstellen:

In Abb. 6 sehen wir, dass das häufigste Alter der Kunden aus dem Datensatz Ende 30 ist. Sie können auch sehen, dass eine Person mindestens 18 Jahre alt sein muss, um Kunde der Bank zu werden.
Es ist auch möglich die univariate Verteilung der Attribute „Balance, „CreditScore“ und „EstimatedSalary“ vorzunehmen:



2.2 Kreis-Diagramm
Eine Alternative zum Plot der univariaten Verteilung zur Visualisierung kontinuierlicher Daten ist das Kreisdiagramm. Kreisdiagramme helfen, Proportionen und Prozentsätze zwischen Kategorien anzuzeigen, indem ein Kreis in proportionale Segmente unterteilt wird. Jede Bogenlänge stellt dabei einen Bruchteil jeder Kategorie dar, während der Vollkreis die Gesamtheit aller Daten darstellt, die 100 % beträgt.
Im Folgenden sehen Sie die Darstellung der Anteile der Kunden im Datensatz, die die Bank verlassen haben („Exited“) und die noch Kunden der Bank sind („Retained“).

2.3 Balkendiagramm
Ein Balkendiagramm ist ein Diagramm, das kontinuierliche Daten darstellt, indem rechteckige Balken verwendet werden, deren Höhe oder Länge proportional zur Anzahl der durch die Balken dargestellten Werte ist. Die Balken können vertikal oder horizontal gezeichnet werden. Ein vertikales Balkendiagramm wird manchmal als Säulendiagramm bezeichnet.
Ein Balkendiagramm zeigt Vergleiche zwischen einzelnen, fortlaufenden Datenkategorien für ein Attribut. Eine Achse des Diagramms zeigt die spezifischen Kategorien, die verglichen werden, und die andere Achse zeigt, wie oft diese Kategorie auftritt.
2.4 Histogramm
Ein Histogramm ist ein Diagramm, das wir verwenden, um die zugrunde liegende Häufigkeitsverteilung kontinuierlicher Daten zu identifizieren und anzuzeigen. Wir bekommen einen guten Überblick über die Bandbreite der Daten sowie mögliche Ausreißer. Darüber hinaus gibt uns diese Art der Visualisierung eine genaue Darstellung der allgemeinen Verteilung der gegebenen Werte. Ein Beispiel für ein Histogramm der Attribute „Geography“ und „NumberOfProducts“ in Abhängigkeit des Attributs „Exited“ ist unten abgebildet:


2.5 Box-Plots
Mit Hilfe von Boxplots können wir die Datenvisualisierung statistischer angehen. Ein Boxplot gibt uns Kenntnisse über einige statistische Eigenschaften der Daten. Ein Boxplot soll schnell einen Eindruck davon vermitteln, in welchem Wertebereich die einzelnen Datenpunkte eines Features liegen und wie sie über diesen Bereich verteilt sind.
In Folgendem Sehen Sie die Boxplots für die Attribute „CreditScore“ und „Age“, abhängig vom Attribut „Exited“:


Ein Boxplot besteht aus einer Box, die durch eine vertikale Linie in zwei Hälften geteilt wird. Die vertikale Linie repräsentiert den Medianwert in den visualisierten Daten.
Der Median ist der Wert, der die obere Hälfte von der unteren Hälfte einer Datenstichprobe trennt. Für einen Datensatz kann er als „Durchschnittswert“ angesehen werden. Im Datensatz {1, 3, 3, 6, 7, 8, 9} ist der Median beispielsweise 6, die viertgrößte und auch die viertkleinste Zahl in der Stichprobe. Das bedeutet, dass die Anzahl der Werte unter und über dem Medianwert gleich ist. Diese Linie teilt das gesamte Diagramm in zwei Bereiche mit jeweils 50 % der Daten.
Die obere Hälfte der Box repräsentiert den Bereich vom Median bis zum dritten Quartil. Das dritte Quartil (Q3) stellt den Mittelwert zwischen dem Median und dem höchsten Wert im Datensatz dar. Das bedeutet, dass 25 % der Daten mit einem höheren Wert als dem Median in diesem Bereich zu finden sind. Der untere Teil der Box hingegen repräsentiert die Spanne vom ersten Quartil bis zum Medianwert. Das erste Quartil ist der Mittelwert zwischen dem Median und dem niedrigsten Wert in den Daten. Das bedeutet, dass 25 % der Daten mit Werten unterhalb des Medians in diesem Bereich liegen.
Das bedeutet, dass sich 50 % aller Datenpunkte eines Merkmals in der Box befinden.
Die Linien, die aus den Kästen herauskommen, werden Whisker genannt. Die Antennen zeigen die Werte außerhalb der Box. Im Gegensatz zur Definition der Box ist die Definition der Antennen nicht einheitlich.
Die meisten Daten liegen in den Bereichen, die durch die unteren und oberen Whisker angezeigt werden. Eine mögliche Definition besteht darin, die Länge der Whisker auf maximal das 1,5-fache des Interquartilabstands (1,5 × IQR) zu begrenzen. Der Whisker endet nicht genau nach dieser Länge, sondern bei dem Wert aus den Daten, der noch innerhalb dieser Grenze liegt. Die Länge der Whisker wird also durch die Datenwerte bestimmt und nicht allein durch den Quartilsabstand. Dies ist auch der Grund, warum die Whiskers nicht auf beiden Seiten gleich lang sein müssen. Liegen keine Werte außerhalb der Grenze von 1,5 × IQR vor, wird die Länge des Whiskers durch die Maximal- und Minimalwerte bestimmt. Ansonsten werden die Werte außerhalb der Whisker separat in das Diagramm eingetragen. Diese Werte können dann als vermutete Ausreißer behandelt werden oder werden direkt als Ausreißer bezeichnet.
3. Bivariate Analyse
Im Gegensatz zu der univariaten Analyse, stellt die bivariate Analyse die Analyse zweier Variablen um die empirische Beziehung zwischen ihnen zu bestimmen. In diesem Tutorial werden wir uns auf zwei Methoden der bivariaten Analyse beschränken:
- Streudiagramme
- Korrelationsdiagramme
3.1 Scatterplot/Streudiagramm
Ein Streudiagramm ist eine Art von Diagramm, das kartesische Koordinaten verwendet, um Werte für normalerweise zwei Variablen für einen Datensatz anzuzeigen. Wenn die Punkte kodiert sind (Farbe/Form/Größe), kann eine zusätzliche Variable angezeigt werden. Die Daten werden als eine Sammlung von Punkten angezeigt, von denen jeder den Wert einer Variablen hat, die die Position auf der horizontalen Achse bestimmt, und der Wert der anderen Variablen, die die Position auf der vertikalen Achse bestimmt.
Es ist zu hoffen, dass das Muster der Punkte im Streudiagramm Aufschluss über die Abhängigkeitsstruktur der beiden Attribute gibt, die durch die Koordinaten dargestellt werden.
Häufig auftretende Korrelationen sind Cluster und lineare Strukturen. Cluster können mit der Clusteranalyse untersucht werden. Die Regressionsanalyse ist besonders nützlich, um lineare Korrelationen zu quantifizieren.
In Abb. 13 sehen Sie zwei Streudiagramme, in denen die Attribute „Alter“ gegen „Balance“ und „Alter“ gegen „CreditScore“ aufgetragen sind. Zusätzlich wurde die Auftragung abhängig vom Attribut „Exited“ durchgeführt.

3.2 Heatmap und Korrelationsdiagramm
Eine Heatmap zeigt Werte für eine Hauptvariable von Interesse über zwei Achsenvariablen als ein Raster aus farbigen Quadraten. Die Achsenvariablen sind in Bereiche wie ein Balkendiagramm oder ein Histogramm unterteilt, und die Farbe jeder Zelle zeigt den Wert der Hauptvariablen im entsprechenden Zellenbereich an.
Ein Korrelogramm ist eine Variante der Heatmap, die jede der Variablen auf den beiden Achsen durch eine Liste numerischer Variablen im Datensatz ersetzt. Jede Zelle stellt die Beziehung zwischen den sich überschneidenden Variablen dar, beispielsweise eine lineare Korrelation.
Korrelationsdiagramme werden oft in einer explorativen Rolle gesehen und helfen Analysten, Beziehungen zwischen Variablen zu verstehen, um deskriptive oder prädiktive statistische Modelle zu erstellen.
Korrelation ist ein kritischer zugrunde liegender Faktor für Data Scientists. Es sagt aus, wie Variablen in einem Datensatz zueinander in Beziehung stehen und wie sie sich miteinander bewegen.
Der Korrelationswert reicht von -1 bis +1. 0-Korrelation bedeutet, 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. Wir können die Korrelationsmatrix mit dem Seaborn-Modul anzeigen.
Es hilft, den Datensatz leicht zu verstehen und wird sehr oft für Analysearbeiten verwendet. Dieses Tutorial zeigt, wie Sie die Korrelationsmatrix in Python mit der Funktion seaborn.heatmap() zeichnen. Die Heatmap dient dazu, Matrixwerte mit unterschiedlichen Farbtönen für unterschiedliche Werte grafisch darzustellen. Es visualisiert die Gesamtmatrix sehr anschaulich. Im folgenden Code stellen wir eine Korrelationsmatrix mithilfe einer Heatmap in Python dar.
