[PYTHON] [EDA] Einführung von Sweetviz (Vergleich mit + Pandas-Profiling)

Bisher verwendete EDA pandas-profiling, aber Sweetviz Ich sehe manchmal so etwas, also habe ich es versucht.

Die verwendeten Daten waren Titanic-Daten.

Inhaltsverzeichnis

  1. [Was ist EDA](Was ist # 1-eda)
  2. [Sweetviz-Ausführungsbeispiel](# 2-sweetviz-Ausführungsbeispiel)
  3. [Ausführungsbeispiel für Pandas-Profile](Ausführungsbeispiel für Pandas-Profile Nr. 3)
  4. [Implementierungsbeispiel](# 4-Implementierungsbeispiel)
  5. [Code und Daten herunterladen](# 4-1-Code und Daten herunterladen)
  6. [Umweltvorbereitung](# 4-2-Umweltvorbereitung)
  7. [Codeausführung](# 4-3-Codeausführung)
  8. [Endlich](# 5 - Endlich)

1. Was ist EDA?

EDA steht für ** Explanatory Data Analysis **. Bei der Durchführung von Datenanalysearbeiten wie maschinellem Lernen werden die folgenden Arbeiten ausgeführt, um die Daten zu verstehen. --Datenvisualisierung

Wenn Sie sich die Details von EDA ansehen, werden Sie viel finden, deshalb werde ich es in diesem Artikel weglassen. Bitte beachten Sie die folgenden Artikel. ・ [Einführung in Data Scientists] Lassen Sie uns grundlegende Operationen der exploratorischen Datenanalyse (EDA) mit Python ausprobierenWas ist EDA (Exploratory Data Analysis)? Exploratory Data Analysis (EDA)

2. Sweetviz-Ausführungsbeispiel

Sweetviz ist eine Bibliothek, die verschiedene Aufgaben ausführen kann, wenn EDA halbautomatisch ausgeführt wird. Ich werde sofort ein Beispiel für die Ausführung mit Titanic-Daten vorstellen. all_number.png

Nach der Ausführung wird das obige HTML erstellt. Schauen wir uns den Inhalt in drei Teilen an.

① Gesamtübersicht und Korrelationskoeffizient

In Teil (1) können Sie die ** Eigenschaften der gesamten Daten ** und den ** Korrelationskoeffizienten ** überprüfen. Insgesamt besteht einer der großen Vorteile von Sweetviz darin, dass Sie ** Trainingsdaten und Inferenzdaten getrennt ** sehen können. ①-1.png In dem Teil der Figur ** für jede der Trainingsdaten und der Inferenzdaten ** Sie können den folgenden Inhalt überprüfen.

Sie können den Korrelationskoeffizienten auch überprüfen, indem Sie auf die Schaltfläche ** Assoziationen ** klicken. associations.png

Das Obige ist ein Beispiel mit Trainingsdaten, aber da es auch mit Inferenzdaten bestätigt werden kann, Es kann möglich sein, zu erraten, ob es einen Unterschied in der Verteilung gibt, indem der Unterschied im Korrelationskoeffizienten zwischen den Trainingsdaten und den Inferenzdaten betrachtet wird.

② Überblick über jede Funktion

Im Teil von ② können Sie Folgendes bestätigen.

②.png

Es ist natürlich, dass die Verteilung gesehen werden kann, Es ist sehr praktisch, ** "Positive Rate" ** und ** "Vergleich von Trainingsdaten und Inferenzdaten" ** zu sehen. Indem wir uns diese ansehen

Es ist möglich, viel im Voraus vorherzusagen, bevor KI-Algorithmen implementiert und Vorhersagegenauigkeit und Beschreibungsfähigkeit wie LIME / SHAP berechnet werden. Wenn Sie im Voraus vorhersagen können, werden Sie den Ergebnissen der KI nicht blind glauben und es wird einfacher sein, die Ergebnisse zu berücksichtigen.

③ Details zu jeder Funktion

In Teil (3) können Sie einige detailliertere Informationen zu jeder Funktionsmenge überprüfen. ③.png

Zusätzlich zu den Informationen in ② wird beispielsweise der folgende Inhalt angezeigt.

Hier ist es normal. ** Die Liste in absteigender Reihenfolge des Werts ** wird nur in den Top 5 der Pandas-Profilerstellung angezeigt. Wenn Sie also etwas mehr sehen möchten oder wenn es 5 oder mehr Ausreißer gibt, ist Sweetviz effektiv. Immerhin wurde es auch in ② angezeigt

Scheint wie die ** Vorteile der Verwendung von Sweetviz **.

Implementierungsbeispiel

Der Code und die von Sweetviz ausgegebene HTML-Datei befinden sich im folgenden Git. Sie können sich nur das HTML ansehen, und es ist ziemlich einfach, den Code zu verschieben. https://github.com/yuomori0127/sweetviz_titanic

Die Formel ist unten. Sweetviz

3. Beispiel für die Ausführung eines Pandas-Profils

Wir werden uns auch ** pandas-profiling ** ansehen, eine Bibliothek für dieselbe EDA. Das Titanic-Implementierungsbeispiel für ** Pandas-Profiling ** wird auf colab veröffentlicht.

https://colab.research.google.com/github/pandas-profiling/pandas-profiling/blob/master/examples/titanic/titanic.ipynb

pandas.png

Ich denke, das ist mehr als genug, da es Ihnen dies nur durch Eingabe der Daten gibt. Oder besser gesagt, ich habe es oft benutzt.

Die Vorteile der Pandas-Profilerstellung, die Sweetviz nicht hat ** Es werden erklärende Variablen vorgeschlagen, die bei der Vorverarbeitung von Daten gelöscht werden sollen **. recommend.png Wie in der Abbildung gezeigt

Usw. ** Schlagen Sie erklärende Variablen vor, die bei der Vorverarbeitung von Daten gelöscht werden sollen **. Es ist eine sehr praktische Funktion, dass Sweetviz diese nicht vorschlagen muss, ohne das Diagramm und die Verteilung betrachten und die Schwelle selbst zeichnen zu müssen.

Die Formel lautet wie folgt. pandas-profiling

4. Vergleich von Sweetviz- und Pandas-Profiling

Ich habe eine Vergleichstabelle mit Sweetviz- und Pandas-Profilen erstellt.

Es hat beide Grundfunktionen, die EDA erfüllt: Die Details sind etwas anders. Außerdem kann ich nicht alle Funktionen auflisten, daher habe ich ziemlich viel extrahiert.

# Vergleichselemente Sweetviz pandas-profiling
1 Anzeige der Verteilung
2 Anzeige der Basisstatistik
3 Anzeige der Verlustrate
4 Anzeige des Korrelationskoeffizienten
5 Datenanzeige in der Reihenfolge der Frequenz
6 Datenanzeige in der Reihenfolge des Wertes △(Nur 5)
7 Anzeige der positiven Rate ×
8 Vergleich von Trainingsdaten und Inferenzdaten ×
9 Schlagen Sie erklärende Variablen zum Löschen vor ×

5. Welches soll ich verwenden?

Persönlich empfehle ich ** Sweetviz **.

Immerhin sind ** "Positive Rate anzeigen" ** und ** "Vergleich von Trainingsdaten und Inferenzdaten" ** sehr praktisch. Der Vorteil der Pandas-Profilerstellung ist ** "Vorschlag für zu löschende erklärende Variablen" **, Natürlich ist es eine großartige Funktion, aber ** es ist unmöglich, die Daten doch nicht zu sehen und nicht darüber nachzudenken **, und ich weiß nicht, ob der Vorschlag gültig ist, also beziehe ich mich doch nicht darauf. Ich bin jedoch dankbar für das ** Potenzial, Versehen zu verhindern **.

Es ist schwierig, die Überlegenheit oder Unterlegenheit zu entscheiden, aber beide sind leicht zu bewegen. Bitte versuchen Sie beide und verwenden Sie diejenige, die zu Ihnen passt!

Recommended Posts

[EDA] Einführung von Sweetviz (Vergleich mit + Pandas-Profiling)
Einfache Einführung der Spracherkennung mit Python
Vervollständige alles mit Jupyter ~ Einführung von nbdev ~
Vergleich der Matrixtranspositionsgeschwindigkeit durch Python
Einführung von Scikit-Optimize
Leistungsvergleich des Gesichtsdetektors mit Python + OpenCV
Einführung von PyGMT
Einführung von Python
Spielen Sie mit der Implementierung der Pythonista 3-Benutzeroberfläche [Super Super Primer]
[Kapitel 6] Einführung in Scicit-Learn mit 100 Klopfen Sprachverarbeitung
[Kapitel 3] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Kapitel 2] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
[Kapitel 4] Einführung in Python mit 100 Klopfen Sprachverarbeitung
Einführung von trac (Windows + trac 1.0.10)
Einführung von ferenOS 1 (Installation)
Vergleich von LDA-Implementierungen
Vergleich von Online-Klassifikatoren
Einführung des Virtualenv-Wrappers
Vergleich der Anpassungsprogramme
[Raspi4; Einführung in den Sound] Stabile Aufzeichnung der Toneingabe mit Python ♪