Du hast Fragen? Wir haben Antworten! - Bald findet unser nächster Tag der offenen Tür statt!

Logo site

Missingno: Die beste Bibliothek, um deine fehlenden Daten zu visualisieren!

-
3
 Minuten Lesezeit
-
Entdecke Missingno, die ultimative Bibliothek für die Visualisierung von fehlenden Daten in deinen Datensätzen.

Einer der wichtigsten Schritte in einem Data-Science-Projekt, bevor wir mit dem Entwurf der Machine-Learning-Modelle beginnen, ist die Bereinigung unseres Datensatzes. Dies beinhaltet das Entfernen von Duplikaten, das Kodieren bestimmter Variablen, aber vor allem das Ersetzen fehlender Werte.

Es ist nicht ungewöhnlich, dass der Datensatz, mit dem wir arbeiten, nicht vollständig ist und fehlende Werte enthält, die als „NaN“ bezeichnet werden. Wenn diese Werte nicht entfernt oder durch verschiedene Techniken ersetzt werden, können sie die Leistung unserer Modelle beeinträchtigen.

Hier kommt Missingno ins Spiel!

Missingno ist nicht nur nach einem berühmten Pokémon-Bug benannt, sondern auch eine Python-Bibliothek für „missing data visualization“, mit der du die fehlenden Werte in deinem Datensatz besser verstehen und analysieren kannst! Diese von Aleksey „ResidentMario“ Bilogur entwickelte Bibliothek ist frei zugänglich auf seinem Github-Repository und ist natürlich mit dem Pandas-Modul kompatibel.

Wie alle Bibliotheken wird auch Missingno mit dem Befehl pip install missingo installiert und dann mit import missingo as msno in ein Python-Programm importiert.

Sehen wir uns die vier Arten von Visualisierungen an, die mit Missingno möglich sind!

Das Balkendiagramm (bar chart)

Das auf Missingno angebotene Balkendiagramm wird mit der Funktion msno.bar(df) gezeichnet und sieht wie folgt aus:

In diesem Diagramm symbolisiert jeder Balken eine Spalte des Datensatzes, und ihre Höhe entspricht dem Anteil der Nicht-Null-Werte in jeder Spalte. Wir haben links den Prozentsatz der vollständigen Werte, rechts die Werte der Indizes und oben die Anzahl der Zeilen.

Für diesen Datensatz enthalten z. B. die Spalten DATE, TIME oder NUMBERS OF PERSONS INJURED keine fehlenden Werte. Umgekehrt enthält die Spalte OFF STREET NAME nur sehr wenige Werte, während NUMBER OF CYCLISTS INJURED / KILLED völlig ohne Werte sind.

Die Nullitätsmatrix

Die Nullitätsmatrix wird mit der Funktion msno.matrix(df) erstellt:

Diese Matrix lässt sich fast wie das erste Histogramm weiter oben interpretieren: Für jede Spalte gilt: Je schraffierter das Kästchen ist, desto mehr von Null verschiedene Werte enthält es. Umgekehrt symbolisiert das Vorhandensein von mehr oder weniger großen weißen Balken, dass es keine Werte gibt.

Auf der rechten Seite der Matrix befindet sich außerdem eine dünne Kurve, die von links nach rechts schwingt, wobei die rechte Seite die Anzahl der Spalten im Datensatz darstellt und die linke Seite somit null ist. Wenn also in einer bestimmten Zeile in jeder Spalte ein Wert steht, neigt sich die Kurve nach rechts. Andernfalls, wenn die Werte ausgehen, neigt sich die Kurve nach links.

Die Korrelationsmatrix (Heatmap)

Wie bei Seaborn wird die Korrelationsmatrix von Missingno mit msno.heatmap(df) dargestellt:

Die Werte der Korrelationsmatrix, die auch als „Nullitätskorrelationen“ oder „nullity correlations“ bezeichnet werden, liegen zwischen -1 und 1 :

  • Ein Wert nahe -1 bedeutet, dass, wenn eine Variable auftritt, es sehr wahrscheinlich ist, dass die andere Variable fehlt.
  • Ein Wert nahe 0 bedeutet, dass es keine besondere Korrelation darüber gibt, ob zwei Variablen Werte aufweisen oder nicht.
  • Ein Wert nahe 1 bedeutet, dass, wenn eine Variable auftritt, es sehr wahrscheinlich ist, dass die andere Variable vorhanden ist.

In der obigen Matrix gibt es z. B. sehr starke Korrelationen zwischen einigen Spalten VEHICLE TYPE CODE und CONTRIBUTING FACTOR VEHICLE, d. h. die Informationen über die Fahrzeuge scheinen die gleiche Vollständigkeit der Werte zu haben (sowohl vorhandene als auch fehlende). Umgekehrt ist OFF STREET NAME sehr unkorreliert mit ON / CROSS STREET NAME, d.h. wo in dieser ersten Spalte Daten fehlen, sind die anderen beiden Spalten sehr vollständig.

Das Dendrogramm

Hinter diesem etwas barbarischen Namen verbirgt sich ein Baumdiagramm, das häufig in unüberwachtem Machine Learning verwendet wird, um die Hierarchie von Clustern darzustellen. In Missingno zeichnen wir es mit der Methode msno.dendrogram(df) nach:

Das Dendrogramm ermöglicht es, die Spalten nach ihrer Nullitätskorrelation zu gruppieren. Je näher die Spalten beieinander liegen, desto größer ist diese Korrelation (desto mehr gibt es einen Zusammenhang zwischen ihrem Vorhandensein oder Fehlen von Werten).

Hier zum Beispiel können wir drei Gruppen unterscheiden:

  • Die Spalten ganz rechts, von CONTRIBUTING FACTOR VEHICLE 1 bis TIME, in denen es keine fehlenden Werte gibt;
  • Spalten in der Mitte, von CONTRIBUTING FACTOR VEHICLE 2 bis VEHICLE TYPE CODE 1, die einen leichten Anteil an fehlenden Werten enthalten;
  • die Spalten ganz links, von OFF STREET NAME bis VEHICLE TYPE CODE 5, die fast leer sind.

Fazit

Die Missingno-Bibliothek ist daher ideal, wenn wir in unserem Datensatz auf fehlende Werte stoßen, um zu visualisieren, wo sich diese Werte befinden und wie sie sich auf unsere Variablen auswirken.

Die verfügbaren Grafiken können in zwei Kategorien unterschieden werden:

  1. solche, die die Anteile der vorhandenen und fehlenden Werte in jeder Spalte anzeigen (Balkendiagramm, Nullstellenmatrix), und
  2. solche, die die Nullstellenkorrelationen zwischen den Variablen untersuchen (Korrelationsmatrix, Dendrogramm).

Um ein Experte im Umgang mit Daten zu werden, zögere nicht, die von DataScientest angebotenen Kurse Data Scientist & Data Analyst zu absolvieren!

DataScientest News

Melde Dich jetzt für unseren Newsletter an, um unsere Guides, Tutorials und die neuesten Entwicklungen im Bereich Data Science direkt per E-Mail zu erhalten.

Möchtest Du informiert bleiben?

Schreib uns Deine E-Mail-Adresse, damit wir Dir die neuesten Artikel zum Zeitpunkt der Veröffentlichung zusenden können!
icon newsletter

DataNews

Starte Deine Karriere im Bereich Data: Erhalte regelmäßig Insiderwissen und wertvolle Karrieretipps in Deinem Posteingang.