[PYTHON] Bis Sie die Silbermedaille (Top 3%) in dem Wettbewerb gewinnen, an dem Sie innerhalb eines Monats zum ersten Mal in der Datenwissenschaft teilgenommen haben!

Einführung

Datenwissenschaft / maschinelles Lernen scheint interessant zu sein, aber wie soll ich studieren? Von diesem Zeitpunkt an begann ich im Februar zu studieren und nahm im März am Kaggle-Wettbewerb teil, mit dem Wunsch, nicht nur Studieninput zu üben! Infolgedessen konnte ich die *** Silbermedaille (+ Top 3%) *** gewinnen! In diesem Artikel werde ich den Prozess, den ich studiert habe, und den Ablauf des Wettbewerbs zusammenfassen. Ich hoffe, Sie werden es als Beispiel sehen! image.png

Überblick

➀Einführung des Wettbewerbs ➁ Flow bis zum Ende des Wettbewerbs (Vor der Teilnahme am Wettbewerb → Nach der Teilnahme am Wettbewerb) ③ Andere Studien, die ich während des Wettbewerbs gemacht habe

Der Wettbewerb, an dem ich in dieser Zeit teilgenommen habe

M5-Prognose - Genauigkeitswettbewerb (März-Juni 2020) image.png Der Wettbewerb, an dem wir dieses Mal gearbeitet haben, ist ein Tabellenwettbewerb dieser Zeitreihendaten, und der Inhalt ist "Produktverkaufsprognose" von Walmart, einem großen amerikanischen Einzelhändler. Angesichts der Daten der letzten fünf Jahre wurde die Umsatzprognose für den Folgemonat (28 Tage) erstellt.

image.png (Als Eindruck war die Datenmenge groß ... Es war auch ein Wettbewerb, bei dem ich über ein effizientes Programm nachdachte, einschließlich der Verwendung des Speichers.)

Zeitleiste

Während des viermonatigen Wettbewerbs von März bis Ende Juni verlief der Zeitplan wie folgt.   3/3 Wettbewerb gestartet     ↓ Teilnahme am Wettbewerb Mitte März     ↓ 6/1 Public Leaderboard Zeitraum korrekte Veröffentlichung der Antwortdaten (Selbst wenn Sie das Vorhersageergebnis an Kaggle senden, kennen Sie Ihr relatives Ranking nicht!)     ↓ 30.06. Der Wettbewerb endet

Ergebnis

Wie ich am Anfang des Artikels erwähnt habe, Das Ergebnis ist ... *** 114. (Top 3%) ***: Smiley: !! (rein glücklich!) ・ Anzahl der Einträge: 88.742 ・ Anzahl der Teams: 5.558 image.png

Flow, um den Wettbewerb anzugehen (Beginn des Studiums)

Ich hatte Erfahrung mit anderen Programmiersprachen als Python, aber zu diesem Zeitpunkt hatte ich selbst noch nie Python verwendet. Was ist also Pandas? Was ist Matplotlib? Ich begann in einem Zustand, in dem ich nicht einmal eine solche Basisbibliothek kannte. Diese Zeit wurde hauptsächlich als eine Zeit betrachtet, in der das Grundwissen über maschinelles Lernen und Python vermittelt wurde. Der Inhalt ist in einem anderen Artikel zusammengefasst (Lernmethode zum Erlernen des maschinellen Lernens von Grund auf neu). Weitere Informationen finden Sie in diesem Artikel. Ich hoffe, Sie können es bekommen, aber hier ist eine kurze Zusammenfassung.

Es ist, als würde man ein Buch / eine Website finden, das die folgenden drei Punkte enthält, und studieren.

➀ Grundkenntnisse im maschinellen Lernen erwerben (Wörter und Begriffe verstehen)

→ Ein Lehrbuch (Buch), das den Mechanismus und die Technologie des maschinellen Lernens und des tiefen Lernens in diesem einen Buch klar versteht

➁ Verstehen, wie die Bibliothek verwendet wird (wichtig in der Datenwissenschaft wie Numpy, Pandas, Matplotlib)

Einführung in Python for Data Science

➂ Ein Einführungsbuch, um den Wettbewerb tatsächlich herauszufordern (Kaggle)

→ Data Science-Reihe üben, beginnend mit Python Kaggle Startbook (Buch)

Nach der Teilnahme am M5-Wettbewerb

Es war ein Wettbewerb, an dem vier Personen mit einem Freund teilnahmen, aber da es das erste Mal für alle Kaggle-Medaillenwettbewerbe war und es sich um einen Langzeitwettbewerb handelte, fuhr ich mit der Erkundung fort. Hier war ich mit Hilfe anderer Mitglieder für die Aufgaben- / Fortschrittsmanagementrolle des Teams verantwortlich. Fassen wir also den allgemeinen Ablauf und die von mir verwendeten Tools zusammen. Ich denke.

Insgesamt, was das Team tat

· Wöchentliches Treffen Teilen von Fortschritten, Teilen von Informationen wie Notizbüchern, Fragen und Prüfungen, die Sie nicht verstehen. Ich denke, dass es in einem langfristigen Wettbewerb wie diesem sehr effektiv ist, dies einmal pro Woche tun zu können. Zu diesem Zeitpunkt konnte ich über zukünftige Richtlinien und das Aufgabenmanagement sprechen, sodass es sehr einfach war, fortzufahren.

Slack Anstatt auf ein wöchentliches Treffen zu warten, gab es Informationen, die mich interessierten, und teilte sie auf Slack. Da viele Mitglieder Slack häufig verwendeten, haben wir Slack mit Tools wie den folgenden verknüpft, um Benachrichtigungen zu fokussieren, damit wir uns mehr auf Kaggle konzentrieren können!

Trello Eines der Fortschrittsmanagement-Tools. Wenn Sie durch Verknüpfen mit Slack Fortschritte in Trello schreiben, werden Sie über Slack benachrichtigt und können Trello von Slack aus aktualisieren.

GitHub Code-Sharing usw. Durch die Verknüpfung mit Slack wird beim Pushen die festgeschriebene Nachricht auch an Slack benachrichtigt (praktisch, da Sie den Push nicht jedes Mal melden müssen!). Teilen Sie danach schwere Daten usw. mit Drive.

(Frühes Stadium) EDA / Vorbehandlungszentrum (alle)

Ich denke, dass jeder Wettbewerb grundlegend ist, aber zuerst habe ich versucht, "die Daten zu verstehen und zu verstehen". Einige Wochen nach Beginn des Wettbewerbs nahm ich an dem Wettbewerb teil, sodass sich die Notizbücher anderer Leute sammelten, und ich wollte sie lesen und selbst analysieren.

(Wie man als Anfänger kämpft) Persönlich dachte ich zu dieser Zeit daran, dass ich mir vor Beginn des Kaggles das Ziel gesetzt hatte, "das, was ich studierte, zu etablieren und in die Praxis umzusetzen". Ich denke, mit Büchern und Websites wie den oben vorgestellten können Sie den grundlegenden Ablauf und die Verwendung am Beispiel von Titanic lernen, aber es gibt Zeiten, in denen Sie es nicht verstehen können, wenn Sie es nicht üben. Während ich darüber nachdachte, wie ich die Daten, die mich interessieren, visualisieren und verarbeiten kann, ging ich zu den oben genannten Büchern und Websites zurück und fragte andere Mitglieder.

(Mitte) EDA / Vorverarbeitung und Arbeitsteilung im Modellbau (2: 2)

Da wir alle mit der Vorverarbeitung fortfuhren und einen gewissen Überblick über die Daten erhielten, beschlossen wir, die Rollen zwischen den Mitgliedern, die die Vorverarbeitung fortsetzen, und den Mitgliedern, die mit der Modellbildung fortfahren, aufzuteilen. Ich wusste nicht, wie schnell das Tempo vorbehandelt werden sollte, und am Ende konnte ich die Menge an Funktionen, über die ich hier nachgedacht hatte, nicht nutzen. Daher dachte ich, ich würde gerne über das nächste Mal nachdenken, aber ich persönlich In Bezug auf die Rollen denke ich, dass die Aufteilung der Rollen mir das Verständnis meiner Aufgaben erleichtert und mir geholfen hat, mich zu konzentrieren.

(Wie man als Anfänger kämpft) In der Mitte des Spiels konzentrierte ich mich auf die Vorverarbeitung, da ich noch nicht an die Vorverarbeitung gewöhnt war und etwas mehr Erfahrung sammeln wollte. Ich denke, dass die Bedeutung von EDA / Vorverarbeitung weit gefasst ist, aber ich habe hauptsächlich Datenvisualisierung und -analyse in den frühen Stadien und Datenverarbeitung als Reaktion darauf ab dem mittleren Stadium studiert und geübt. ..

(Spätes Stadium) Betonung des Modellbaus während der Vorverarbeitung (1: 3)

Als ich in die Endphase eintrat, hatte ich Zeitbeschränkungen. Nach Abschluss der Richtlinie nahm ich, der hauptsächlich Vorverarbeitung durchführte, auch am Modellbau teil. Insbesondere am Ende dieses Zeitraums befand ich mich in einem Zustand mit verbundenen Augen, in dem ich die Bewegung des Rankings überhaupt nicht verstehen konnte. Daher hatte ich das Gefühl, die relative Position nicht verstehen zu können, und machte Versuch und Irrtum.

(Wie man als Anfänger kämpft) Wie später beschrieben wird, hatte ich, obwohl ich Erfahrung mit der Erstellung von Modellen über AtmaCup hatte, nie an Zeitreihendaten gearbeitet, und es gab viele Dinge, die ich nicht verstand. Es war also großartig, daran arbeiten zu können, während ich von den Mitgliedern unterrichtet wurde. Außerdem gab es ein Problem mit dem Zeitraum, und für diesen Teil habe ich mich stark auf die Mitglieder verlassen, die im Voraus daran gearbeitet haben. Daher werde ich in Zukunft mein Bestes geben, damit ich mehrere Modelle erstellen und mehrere Überprüfungszeiträume nutzen kann. Ich wollte kommen.

Zusammenfassung

Im Vergleich zur alleinigen Teilnahme an einem Wettbewerb hatte ich das Gefühl, dass sich das Spektrum der Dinge, die ich tun könnte, wenn ich als Team an einem Wettbewerb teilnehmen könnte, erweitern würde. Andererseits denke ich, dass dies der Fall ist, aber im Hinblick auf die Schwierigkeit, als Team vorzugehen. Ich fühlte mich auch. Es war mein erster Medaillenwettbewerb bei Kaggle, daher denke ich, dass die folgenden Punkte gute Punkte für die Bildung eines Teams sind.

<Gut, ein Team zu bilden>

――Sie können gerne Fragen stellen, die Sie nicht verstehen. ――Da Sie Rollen teilen können, können Sie sich auf das konzentrieren, was Sie studieren möchten, und dies in der richtigen Reihenfolge tun. + Sie können auch Rollen in Ihrem Fachgebiet teilen (Wenn Sie selbst anfangen, müssen Sie sie implementieren, während Sie Vorverarbeitung und Modellbau studieren. Ich denke, das ist ziemlich schwierig.) ――Da die Ansatzvorschläge aus unterschiedlichen Perspektiven stammen, können Sie sich mehr Ideen und Methoden vorstellen als wenn Sie alleine denken.

Schließlich glaube ich, dass ich diese Medaille als Neuling in der Datenwissenschaft nicht alleine erreichen konnte. Deshalb möchte ich meinen Freunden danken, die gemeinsam am Kaggle-Wettbewerb teilgenommen und die Fragen beantwortet haben. Ich denke! Danke nochmal!

Was ich während des Wettbewerbs parallel studiert habe

Da es ein wenig außerhalb der Hauptgeschichte liegt, wird es in Form eines "Bonus" vorliegen, aber schließlich werde ich andere Studien (Dinge) vorstellen, an denen ich während dieses Wettbewerbs gearbeitet habe. Als Teil meiner Ausgabe denke ich auch darüber nach, es in einem Artikel zusammenzufassen, daher werde ich es hier kurz zusammenfassen, aber ich habe hauptsächlich an den folgenden drei Dingen gearbeitet.

Maschinelles Lernen (Coursera) (April-Mai 2020)

Ich habe verstanden, wie man die Bibliothek benutzt, und es gibt einige Teile, die ich in der Praxis verwendet habe, aber ich weiß nicht, wie maschinelles Lernen gemacht wird, deshalb habe ich beschlossen, den theoretischen Teil zu lernen. Kurs. Ich konnte theoretisch mit Matlab lernen und bin froh, dass ich mehr über maschinelles Lernen gelernt habe.

Deep Learning-Grundkurs (Matsuo Lab., Universität Tokio) (April 2020-)

Ich habe es in diesem Wettbewerb nicht verwendet, aber ich wollte Deep Learning verstehen, also habe ich diesen Kurs belegt. Nicht nur der grundlegende Teil des maschinellen Lernens / Tiefenlernens, sondern auch CNN, RNN, Stärkung des Lernens, VAE usw. werden durch Vorlesungen erlernt, und es ist möglich, während des Übens in den nachfolgenden Übungen zu verstehen. (Gegenwärtige progressive Form)

AtmaCup # 5 (29. Mai - 6. Juni 2020)

Ein Wettbewerb, bei dem ich eine Reihe von EDA-, Vorverarbeitungs- und Modellbauarbeiten selbst durchführen wollte. Der Inhalt ist ein Tabellen- + Signaldatenwettbewerb ohne Zeitreihen. Obwohl der Inhalt der Analyse schwierig war, gab es mehrere hochrangige japanische Kaggler-Teilnehmer, und es war oft eine Lernerfahrung bei den Sitzungen zur Offenlegung und Überprüfung der Essenz nach dem Wettbewerb.

Recommended Posts

Bis Sie die Silbermedaille (Top 3%) in dem Wettbewerb gewinnen, an dem Sie innerhalb eines Monats zum ersten Mal in der Datenwissenschaft teilgenommen haben!
Ich besuchte die Schule und nahm zum ersten Mal am SIGNATE BEGINNER Limited-Wettbewerb teil.
MongoDB mit Python zum ersten Mal
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
Es ist okay, zum ersten Mal teilzunehmen! Ein Hackason-Starter-Kit, das Sie "vor" der Teilnahme am Hackason vorbereiten möchten!
Bis Sie die Flask-Anwendung vorerst in Google App Engine ausführen
Bis Sie Daten in eine Tabelle in Python einfügen
Zusammenfassung der Stolperpunkte in Django zum ersten Mal
[In kürzester Zeit verstehen] Python-Grundlagen für die Datenanalyse
Code, an den ich mich gerne erinnert hätte, als ich zum ersten Mal an AtCoder teilgenommen habe (Reflection 1 für das nächste Mal)
Einstellungen zum Ausführen eines Tests jedes Mal, wenn Sie eine Datei mit watchmedo (watchdog) im Editor speichern
Was ich durch das Schreiben einer Python Pull-Anfrage zum ersten Mal in meinem Leben gelernt habe
Wenn Sie neu in der Programmierung sind, warum machen Sie nicht vorerst ein "Spiel"? Die Geschichte
Kaguru zum ersten Mal
Zum ersten Mal versuchte ein Programmieranfänger eine einfache Datenanalyse mit Programmierung