[PYTHON] [Für Anfänger] Zusammenfassung des Leidens an Kaggles EDA und seines Kampfes

1. Zweck

Ich habe im Januar 2019 angefangen, Programmieren zu lernen, bin auf eine Online-Programmierschule gegangen und habe im Juli 2019 ernsthaft angefangen zu lernen.

Ich habe als Übung an Kaggle gearbeitet, aber ** Ich bin zu sehr über den Teil der Datenvisualisierung gestolpert, bevor ich ein Modell für maschinelles Lernen erstellt habe, und habe mir oft das Herz gebrochen **.

Aber in der Tat bin ich nicht der einzige, der sich Sorgen macht. Ich denke, dass alle Teile, die unerwartet stolpern, gleich sind. Ich habe einen Artikel veröffentlicht, der sogar für Superanfänger, die jetzt leiden, ein wenig nützlich ist Was zu tun ist / ist der Zweck **. Außerdem versuche ich nicht nur die Schlussfolgerungen, sondern auch meine Gedanken zu schreiben. Obwohl ich noch Anfänger bin, kann ich ab nächsten April in einem auf KI spezialisierten Unternehmen arbeiten. In diesem Sinne hoffe ich, dass ich zur ** Motivation für Anfänger ** beitragen kann ..

※Hinweis※ Dieser Artikel ist kein Artikel, der Wissen lehrt: "Wenn Sie dies tun, können Sie es lösen." Basierend auf meinem eigenen Wissen über die aktuellen Super-Anfänger schrieb ich eine Aufzeichnung des Kampfes, dass es ganz so sein würde. Wenn es etwas gibt, das besser funktioniert, wenn Sie dies tun, tut es mir leid, Sie zu beunruhigen, aber ich würde es begrüßen, wenn Sie es mir sagen könnten.

2. Kaggle vorstellen

Kickstarter Projects Vielleicht ist es ein super einführendes Gefühl vor der Titanic. Es klassifiziert den Erfolg oder Misserfolg der Cloud-Finanzierung. https://www.kaggle.com/kemical/kickstarter-projects

3. Einführung des EDA-Kampfes, der diesmal aufgegriffen werden soll

[1] Bei der Visualisierung der Daten gab es einen Ausreißer

Ich denke, dass die Visualisierung von Daten der erste Schritt ist, aber in Wirklichkeit hat es lange gedauert, bis festgestellt wurde, dass sie aufgrund von Ausreißern nicht gut visualisiert wurden **.

[2] In der Abbildung gibt es zu viele Funktionen, um die Zeichen zu lesen.

Zunächst Visualisierung! Ich war begeistert und habe versucht, ein Balkendiagramm zu erstellen, das ich in einem Buch oder im Internet nachgeschlagen habe, aber ich konnte die visualisierten Zeichen überhaupt nicht lesen, weil es zu viele Variablen gab. ** Ich möchte nur die oberen Elemente visualisieren ... Es braucht viel Zeit, um herauszufinden, wie es geht Es dauerte ** Rekord.

4. Kampf [1] Bei der Visualisierung der Daten gab es einen Ausreißer

(1) Bevor Sie zum Hauptthema kommen

Importieren Sie, was Sie benötigen, und lesen Sie die Daten.

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import math
import pandas as pd
import seaborn as sns

df = pd.read_csv(r"C:~~\ks-projects-201801.csv")

(2) Probieren Sie verschiedene Visualisierungen aus

Okay, es ist wichtig, zuerst die Daten zu betrachten, sowohl beim Kaninchen als auch in der Ecke! Ich dachte, dass dieses Kaggle selbst nicht viele Funktionen hat, also habe ich beschlossen, es einzeln zu betrachten.

◆ Zustand (Klassifizierung der Erfolgs- oder Misserfolgsergebnisse)

Wenn Sie diesen Code schreiben und visualisieren, sieht er folgendermaßen aus:

df["state"].value_counts().plot(kind = "bar")
キャプチャ1.PNG

Hmm ... ich versage so sehr ... Es gibt jedoch verschiedene andere Möglichkeiten als Misserfolg und Erfolg, wie zum Beispiel Dinge, die in der Mitte endeten ... Aber die meisten davon sind Misserfolg und Erfolg, deshalb möchte ich die Daten zunächst mit Ausnahme dieser beiden abschneiden!

In der Tat hielt ich es für wichtig, die Daten zu visualisieren und zu berücksichtigen, um darüber nachzudenken. Nachdem wir verschiedene andere Funktionen visualisiert hatten, kamen wir schließlich zu der fraglichen Funktion.

◆ Ziel (Zielbetrag)

Abhängig von der angestrebten Höhe der Cloud-Finanzierung kann dies erfolgreich oder erfolglos sein! Ich dachte, ich habe versucht, es mit einem allgemeinen Histogramm zu visualisieren.

plt.hist(df["goal"])

Dann ... wurde ein solches Histogramm erstellt.

キャプチャ2.PNG

Wenn ich jetzt darüber nachdenke, liegt das daran, dass es einen Ausreißer gibt, aber zu diesem Zeitpunkt habe ich es überhaupt nicht bemerkt (ich kannte den Ausreißer selbst, konnte mich aber nicht verbinden): "Was ist das ...? Jeder Es ist das gleiche, aber ... ich meine, was ist 1e8 auf der rechten Seite der x-Achse? Was ist die Potenz von 10? "

Ich hätte es bemerken sollen, indem ich mir den numerischen Wert im Ziel des Merkmalsbetrags angesehen habe, aber ich habe es überhaupt nicht bemerkt. Vielleicht habe ich das Gefühl, dass jetzt angenommen wird, dass ** "Visualisierung" selbst der Zweck war und es nicht die ursprüngliche Datenanalyse ** war.

Eigentlich war ich ratlos, weil ich es überhaupt nicht herausfinden konnte, selbst wenn ich es in meiner Freizeit ein oder zwei Tage lang überprüft hatte. Vielmehr konnte ich nicht wirklich darüber nachdenken, wonach ich überhaupt suchen sollte.

(3) Rückhand ... Fragen Sie den Lehrer

Das ist schlecht, vielleicht ist es super rudimentär, aber ich weiß es überhaupt nicht ... Es tut mir leid, dass es keine sehr allgemeine Lösung ist, aber ich habe zu dieser Zeit einen Kurs für maschinelles Lernen in einem bestimmten Unternehmen besucht, also habe ich den Lehrer gefragt. tat.

Als ich dem Lehrer meinen Code und das visualisierte Histogramm zeigte, kehrte er sofort zurück: "Ist es nicht so, weil es einen Ausreißer gibt?"

Ausreißer ... ja ... im Ernst ... Ich hatte nur den Eindruck, aber der Lehrer hat mich für mein Studium nicht mehr unterrichtet, also war ich auf dem Weg nach Hause. Ich dachte vage, dass es besser wäre, das Box-Bart-Diagramm nach dem Preis zu durchsuchen, also fuhr ich zu Hause fort.

(4) Nicht sofort gelöst ...

Ich hatte Hintergrundwissen, weil ich die Box-Whisker studierte, als ich den statistischen Test der 3. Klasse absolvierte. Auf Anraten des Ausreißers des Lehrers beschloss ich, vorerst eine Boxbartzeichnung zu machen.

sns.boxplot(y = "goal",data=df)
キャプチャ4.PNG

Irgendwie ... ist es anders als ich erwartet hatte ... Der Kastenbart ist nicht so ein seltsamer Typ ...?

Wenn ich jetzt darüber nachdenke, gibt es zu viele Daten um 0.0 und die Box ist zerquetscht, und die Ausreißer selbst werden als Punkte dargestellt, aber ich habe die dicke Linie um 0.0 nicht einmal bemerkt und dachte, dass es keinen Sinn ergibt. Es war.

Also dachte ich: „Ja, ich könnte die Geigenhandlung verwenden, um zu wissen, wo und wie viele Daten gesammelt wurden. Lassen Sie es uns für einen Moment tun.“ Ich tat Folgendes.

sns.violinplot(y = "goal",data=df)
キャプチャ5.PNG

Als ich diese Geigenhandlung sah, die nicht anders aussah als das Box-Bart-Diagramm, stellte ich schließlich fest, dass es um 0,0 zu viele Daten gab und das Diagramm seltsam war.

Wahrscheinlich sollten die meisten Daten bei 0,0 liegen, also nehmen wir vorerst große Daten! Ich dachte. Vorläufig habe ich Folgendes getan, um mehr als 1 Million von den Daten abzuschneiden.

df_goal_train = df[(df["goal"]<1000000)]
sns.boxplot(y = "goal",data=df_goal_train)
キャプチャ6.PNG

Ich denke, es ist immer noch nutzlos, also werde ich das nächste Mal versuchen, es auf 100.000 oder weniger zu reduzieren.

df_goal_train = df[(df["goal"]<100000)]
sns.boxplot(y = "goal",data=df_goal_train)
キャプチャ7.PNG

Es ist ziemlich nahe an der Bartfigur, an die ich gedacht habe! !! Probieren wir die Geigenhandlung in diesem Zustand aus.

sns.violinplot(y = "goal",data=df_goal_train)
キャプチャ8.PNG

Es fühlt sich gut an! !! Zu diesem Zeitpunkt habe ich einige Daten, die ich geschnitten habe, aber ich kann sehen, dass der mittlere Zielbetrag etwa 10.000 oder weniger beträgt und die Lautstärkezone auch 5.000 oder weniger beträgt, wenn ich mir das Geigenplot ansehe. Mit anderen Worten, ich denke, Sie können der Analyse der Daten entnehmen, dass es viele relativ geringe Mengen an Cloud-Mitteln gibt.

Es ist jedoch nicht gut, die hochpreisige Cloud-Finanzierung, die dieses Mal zur Veranschaulichung entfernt wurde, aus den Daten zu löschen. Wenn es in Zukunft eine hochpreisige Cloud-Finanzierung gibt, können diese Daten nicht gut vorhergesagt werden. Ich denke, Sie können anhand dieser Visualisierung erkennen, dass der Umgang mit Daten selbst sorgfältig festgelegt werden muss.

Damit ist das Kapitel zur Zielvisualisierung abgeschlossen.

5. Kampf [2] Ich kann die Zeichen nicht lesen, da die Abbildung zu viele Funktionen enthält.

(1) Bevor Sie zum Hauptthema kommen

Wie bei [1] werden wir Kickstarter-Projekte verwenden. Es ist genau das gleiche wie zuvor, aber importieren wir, was wir brauchen.

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import math
import pandas as pd
import seaborn as sns

df = pd.read_csv(r"C:~~\ks-projects-201801.csv")

(2) Probieren Sie verschiedene Visualisierungen aus

Wie zuvor war ich mit diesem Problem konfrontiert, als ich mir die Funktionen einzeln ansah.

Schauen wir uns zunächst die Anzahl der "Hauptkategorien" an! Ich dachte, ich habe versucht, es zu veranschaulichen.

df["main_category"].value_counts().plot(kind = "bar", stacked = True
キャプチャ9.PNG

Andererseits bin ich nicht wirklich voreingenommen gegenüber irgendjemandem ... Danach dachte ich vage, dass ich durch Erfolg und Misserfolg veranschaulichen möchte.

Nun, vorerst dachte ich, ich würde versuchen, das nächste Mal eine ähnliche "Kategorie" zu illustrieren, also habe ich es versucht.

df["category"].value_counts().plot(kind ="bar")
キャプチャ10.PNG

... kann nicht lesen·····. Eigentlich war ich vorher mit genau dem gleichen Problem festgefahren, und zu diesem Zeitpunkt konnte ich es nicht herausfinden, selbst wenn ich es nachgeschlagen hatte, also ließ ich es in Ruhe.

Ich dachte, dass dies in Zukunft wieder dasselbe sein würde, also überlegte ich, was ich tun sollte. Was ich wissen wollte, war die Art der Kategorie, die häufig verwendet wurde, also beschloss ich, mir die Top-Artikel anzusehen.

Aus diesem Grund habe ich mich entschlossen, mich auf die Daten zu beschränken, die 10.000 Mal oder öfter angezeigt werden, und Folgendes getan.

df["category"].value_counts()[df["category"].value_counts() > 10000].plot(kind="bar")
plt.show()
キャプチャ11.PNG

Dann wurden nur die Top-Artikel ordentlich angezeigt! !!

Ich habe einige Nachforschungen angestellt, aber ich denke, dies ist wahrscheinlich der beste Weg, um die Daten zum ersten Mal auf der Ebene zu betrachten.

Es ist normal, ruhig zu denken, aber ** Als ich Programmieren studierte, habe ich Zeit damit verschwendet, über etwas Magisches nachzudenken, das auf einen Schlag schön aussieht * * Aber jetzt bin ich zu dem Schluss gekommen, dass dies der richtige Weg ist, wenn man bedenkt, was ich tun möchte.

6. Fazit

Das ist es. Wenn Sie es in solchen Worten schreiben, ist es ein Moment, und ich denke, dass viele Leute sagen: "Das ist richtig", aber ich bin immer noch ein super Anfänger, und jetzt habe ich die Erfahrung, jedes Mal an solchen Orten zu stolpern und nicht in der Lage zu sein, sehr gut voranzukommen. Aber ich tue.

** Ich hoffe, Sie können sagen, dass "nicht jeder von Anfang an weiß, wie man es gut macht" und "jeder in der Lage ist, nacheinander beharrlich zu arbeiten und es allmählich zu können" **.

Es gibt Bücher und Websites, auf denen steht "Ich sollte das tun", aber ich denke, dass es nicht viele Inhalte gibt, die den Prozess "Ich habe an einem solchen Ort gelitten und ihn durch dieses Denken gelöst" beschreiben. Daher denke ich, dass er Anfänger wie mich motivieren wird. Ich hoffe, es hilft Ihnen, Ihr Wissen zu stärken.

Recommended Posts

[Für Anfänger] Zusammenfassung des Leidens an Kaggles EDA und seines Kampfes
"Durchschnitt der Summen von 1 bis 10" und seine Ausführungsgeschwindigkeit
[Für Anfänger] Zusammenfassung der Standardeingabe in Python (mit Erklärung)
Zusammenfassung der Unterstützung von Hash-Operationen (Dictionary) für Ruby und Python
Pandas-Grundlagen für Anfänger ④ Umgang mit Datums- und Zeitangaben
[Für Anfänger] Eine Wortzusammenfassung der gängigen Programmiersprachen (Version 2018)
Übersicht über Docker (für Anfänger)
Zusammenfassung der empfohlenen APIs für künstliche Intelligenz, maschinelles Lernen und KI
Was ist Schaben? [Zusammenfassung für Anfänger]
Ich habe die Quantenbits (Anfänger) kurz zusammengefasst.
Pandas Basics Summary Link für Anfänger
[Für Wettkampfprofis] Zusammenfassung der Verdoppelung
Zusammenfassung der Python-Indizes und -Slices
Vorgehensweise von der AWS CDK (Python) -Entwicklung bis zur AWS-Ressourcenkonstruktion * Für Anfänger