So vergleichen Sie 2 Datensätze mit Pandas-Profiling

Nov 25 2022
Ein Anwendungsfall für Datenqualität mit fortschrittlichem EDA
Visualisierung ist der Eckpfeiler von EDA. Wenn wir mit einem neuen, unbekannten Datensatz konfrontiert werden, ermöglicht uns die visuelle Inspektion, ein Gefühl für die verfügbaren Informationen zu bekommen, einige Muster in Bezug auf die Daten zu zeichnen und mehrere Probleme zu diagnostizieren, die wir möglicherweise angehen müssen.
Pandas-Profiling-Vergleichsbericht (Screenshot vom Autor)

Visualisierung ist der Eckpfeiler von EDA. Wenn wir mit einem neuen, unbekannten Datensatz konfrontiert werden, ermöglicht uns die visuelle Inspektion, ein Gefühl für die verfügbaren Informationen zu bekommen, einige Muster in Bezug auf die Daten zu zeichnen und mehrere Probleme zu diagnostizieren, die wir möglicherweise angehen müssen. In dieser Hinsicht ist Pandas Profiling das unverzichtbare Schweizer Messer im Werkzeuggürtel eines jeden Datenwissenschaftlers. In meinen früheren Artikeln habe ich erwähnt, wie hilfreich die Erstellung von Panda-Profilen bei der Durchführung von Zeitreihen-EDA sein kann, aber was wäre, wenn wir zwei Datensätze vergleichen könnten?

Wie viele von uns haben mit der Entwicklung eines Data-Science-Projekts begonnen und kämpfen damit, zu verstehen, wie viel wir von unseren Datentransformationen und -engineerings bekommen?

Und genau das werde ich im heutigen Blogbeitrag behandeln – wie man die berühmteste einzelne Codezeile EDA nutzt, um den Prozess der datenwissenschaftlichen Entwicklung und die Verbesserung der Datenqualität voranzutreiben. Ich gebe Ihnen einen Rundgang, wie Sie die Vergleichsberichtsfunktion von Pandas-Profiling nutzen können, um Ihren EDA-Prozess zu verbessern und sein Potenzial für schnellere und intelligentere Transformationen unserer Daten zu veranschaulichen.

Der in diesem Artikel verwendete Datensatz befindet sich in Kaggle, dem HCC -Datensatz von Miriam Santos (Lizenz: CC0: Public Domain ). Für diesen speziellen Anwendungsfall habe ich künstlich einige zusätzliche Datenqualitätsprobleme eingeführt, um Ihnen zu zeigen, wie die Visualisierung uns helfen kann, sie zu erkennen und uns zu ihrer effizienten Minderung zu führen. Alle Codes und Beispiele sind auf GitHub verfügbar, und falls Sie eine kleine Auffrischung benötigen, schauen Sie unbedingt in diesem Blog nach, um Ihre Panda-Profiling-Fähigkeiten abzustauben. Also, weiter mit unserem Anwendungsfall!

Pandas-Profilerstellung: EDA an Ihrer Fingerspitze

Wir beginnen mit der Profilerstellung des HCC-Datensatzes und der Untersuchung der im Bericht vorgeschlagenen Datenqualitätsprobleme:

pip install pandas-profiling==3.5.0
    
      

Alerts shown in Pandas Profiling Report (scheenshot by author)

  • Duplikate : 4 doppelte Zeilen in Daten;
  • Konstante : Konstanter Wert „999“ in „O2“;
  • Hohe Korrelation : Mehrere Merkmale, die als hoch korreliert gekennzeichnet sind;
  • Fehlt : Fehlende Werte in 'Ferritin'.

Entfernen doppelter Zeilen : Abhängig von der Art der Domäne kann es Datensätze geben, die dieselben Werte haben, ohne dass es sich um einen Fehler handelt. In Anbetracht der Tatsache, dass einige der Merkmale in diesem Datensatz jedoch ziemlich spezifisch sind und sich auf die biologischen Messungen einer Person beziehen (z. B. „Hämoglobin“, „MCV“, „Albumin“), ist es unwahrscheinlich, dass mehrere Patienten für alle Merkmale dieselben genauen Werte angeben . Beginnen wir damit, diese Duplikate aus den Daten zu entfernen:

Entfernen irrelevanter Merkmale : Die konstanten Werte in O2 spiegeln auch eine echte Inkonsistenz in den Daten wider und scheinen keine wertvollen Informationen für die Modellentwicklung zu enthalten. In realen Anwendungsszenarien wäre es ein guter Standard, mit einer Domäne oder einem Geschäftsexperten zu iterieren, aber für die Zwecke dieses Anwendungsfallbeispiels werden wir fortfahren und sie aus der Analyse streichen:

Imputation fehlender Daten : Der HCC-Datensatz scheint auch extrem anfällig für fehlende Daten zu sein. Eine einfache Möglichkeit, dieses Problem zu lösen (um das Entfernen unvollständiger Datensätze oder ganzer Merkmale zu vermeiden), besteht darin, auf die Datenimputation zurückzugreifen. Wir verwenden die mittlere Imputation, um die fehlenden Beobachtungen auszufüllen, da dies die gebräuchlichste und einfachste statistische Imputationstechnik ist und oft als Basismethode dient:

Direkter Vergleich: schnellere und intelligentere Iterationen Ihrer Daten

Jetzt zum lustigen Teil! Nachdem wir die erste Reihe von Transformationen in unserem Datensatz implementiert haben, sind wir bereit, ihre Auswirkungen auf die Gesamtqualität unserer Daten zu bewerten. Hier kommt die pandas-profiling-Vergleichsberichtsfunktion ins Spiel. Der folgende Code zeigt, wie Sie beginnen können:

So werden beide Berichte im Vergleich dargestellt:

Vergleich von Originaldaten und transformierten Daten (Screencast des Autors)

Was können wir unserer Datensatzübersicht auf Anhieb entnehmen? Der transformierte Datensatz enthält ein kategorisches Merkmal weniger („O2“ wurde entfernt), 165 Beobachtungen (gegenüber den ursprünglichen 171 mit Duplikaten) und keine fehlenden Werte (im Gegensatz zu den 79 fehlenden Beobachtungen im ursprünglichen Datensatz).

Aber wie haben sich diese Transformationen auf die Qualität unserer Daten ausgewirkt? Und wie gut waren diese Entscheidungen?

Lassen Sie uns tief in das eintauchen. In Bezug auf doppelte Datensätze gab es keine besonderen Auswirkungen in Bezug auf Variablenverteilungen und Datensatzmuster nach dem Rückgang. Die Imputation fehlender Werte, die durchgeführt wurde, ist eine andere Geschichte.

Wie erwartet gibt es keine fehlenden Beobachtungen, nachdem die Datenimputation durchgeführt wurde. Beachten Sie, dass sowohl die Nullitätszählung als auch die Matrix die Unterschiede zwischen beiden Versionen der Daten zeigen: In den transformierten Daten hat „Ferritin“ jetzt 165 vollständige Werte, und in der Nullitätsmatrix können keine Leerzeichen gefunden werden.

Vergleichsbericht: Fehlende Werte (Screencast vom Autor)

Dem Vergleichsbericht können wir aber etwas anderes entnehmen. Wenn wir das „Ferritin“-Histogramm untersuchen würden, würden wir sehen, wie die Imputierung von Werten mit dem Mittelwert die ursprüngliche Datenverteilung verzerrt hat, was unerwünscht ist.

Vergleichsbericht: Ferritin – imputierte Werte scheinen die ursprüngliche Merkmalsverteilung zu verfälschen (Screenshot des Autors)

Dies wird auch durch die Visualisierung von Interaktionen und Korrelationen beobachtet, wo sich blöde Interaktionsmuster und höhere Korrelationswerte in der Beziehung zwischen „Ferritin“ und den übrigen Merkmalen abzeichnen.

Vergleichsbericht: Interaktionen zwischen Ferritin und Alter: Imputierte Werte werden in einer vertikalen Linie angezeigt, die dem Mittelwert entspricht (Screenshot des Autors)
Vergleichsbericht: Korrelationen — Ferritin-Korrelationswerte scheinen nach Datenimputation zu steigen (Screenshot des Autors)

Dies zeigt, dass der Vergleichsbericht nicht nur nützlich ist, um die nach Datentransformationen eingeführten Unterschiede hervorzuheben, sondern auch mehrere visuelle Hinweise liefert, die uns zu wichtigen Erkenntnissen in Bezug auf diese Transformationen führen: In diesem Fall sollte eine spezialisiertere Datenimputationsstrategie in Betracht gezogen werden .

Abschließende Gedanken

In diesem kleinen Anwendungsfall haben wir die Nützlichkeit des Vergleichs zweier Datensätze innerhalb desselben Profilerstellungsberichts behandelt, um die während der EDA durchgeführten Datentransformationen hervorzuheben und ihre Auswirkungen auf die Datenqualität zu bewerten.

Dennoch sind die Anwendungen dieser Funktionalität endlos, da die Notwendigkeit der (erneuten) Iteration der Merkmalsbewertung und visuellen Inspektion für datenzentrierte Lösungen von entscheidender Bedeutung ist. Vom Vergleich von Trainings- , Validierungs- und Testdatenverteilungen oder der Datenqualitätskontrolle bis hin zu fortgeschritteneren Anwendungsfällen wie dem Prozess der Generierung synthetischer Daten .

Fabiana Clemente , CDO bei YData

Beschleunigung der KI mit verbesserten Daten.