[PYTHON] Eine Geschichte, die ein Amateur, der das Terminal über 3 Wochen nicht kennt, in Kaggle gepostet hat

Einführung

Dieser Artikel teilt meine Härte-basierte Kaggle-Erfahrung. Erläutert die Registrierung von Kaggle-Wettbewerben und die Einreichung von Vorhersagen. Allerdings muss es den meisten Menschen wahrscheinlich nicht erklärt werden. (Ja wirklich) Bitte vergib mir, dass ich ein Durcheinander gemacht habe.

Von der Kaggle-Herausforderung bis zur Artikelveröffentlichung

Mit dem Ziel der Datenwissenschaft begann ich ab dem 7. Dezember dieses Monats zu studieren. Einschließlich meines vorherigen Jobs ** habe ich mich in meinem Leben noch nie mit Programmieren befasst **.

Ich verwende Word, Excel und Powerpo nur zum Erstellen von Materialien, und um es ganz klar auszudrücken, das Tippen ist etwas schneller, da ich von Online-Spielen abhängig bin.

Als ich mir den Ort Qiita geliehen und detaillierte Lernaufzeichnungen geführt habe, habe ich in den ersten zwei Wochen nach Beginn des Studiums versucht, die Grundlagen mithilfe von Büchern und Progate zu verstehen und gründlich zu verstehen, aber schließlich ** Ich dachte, dass praktische Ergebnisse für das Mastering ** unverzichtbar sind, und beschloss, sie beim Kaggle-Wettbewerb zu veröffentlichen. Obwohl dies nur zur Hälfte erzwungen wurde, gelang es mir, das Ergebnis in der dritten Woche durch Ausprobieren zu veröffentlichen. Es ist fertig.

Kaggle ist jedoch nur Englisch, und für mich, der wenig Verständnis für maschinelles Lernen hat, war jeder Schritt von der Registrierung zur Einreichung ein Chaos, und ich wusste nicht, was ich tun sollte. (Es war kein verschwenderischer Tag, weil ich beim Forschen viel lernen konnte.)

Es ist jedoch auch wahr, dass ich, wenn es Material gäbe, das ich auf meinem Niveau verstehen könnte, reibungsloser posten könnte.

Basierend auf dieser Idee hoffe ich, dass es für diejenigen hilfreich sein wird, die den Kaggle-Wettbewerb herausfordern werden, und für diejenigen mit einem ähnlichen Niveau (falls vorhanden). Registrieren Sie den Wettbewerb und reichen Sie den vorhergesagten Wert so einfach wie möglich ein. Ich erklärte über.

Wenn Sie etwas schwer zu verstehen finden, wäre ich Ihnen sehr dankbar, wenn Sie uns Anleitungen und Vorschläge geben könnten.

Registrieren Sie sich für Kaggle-Wettbewerbe

    1. Zugriff auf Kaggle Official
  1. Klicken Sie auf "Wettbewerbe". Sortieren nach "Zuletzt erstellt" sortiert die Wettbewerbe in der Reihenfolge, in der sie zuletzt gestartet wurden. qiita1-1.png

    1. Dieses Mal werde ich an dem Wettbewerb teilnehmen, der von einem roten Rahmen umgeben ist. (2 Klassenklassifizierung, Verarbeitung natürlicher Sprache) qiita1-2.png
  2. Nachdem Sie den Inhalt von "Regel" bestätigt haben, nehmen Sie am "Wettbewerb teilnehmen" teil. Der Inhalt der Regeln variiert je nach Wettbewerb, es gibt jedoch eine Beschreibung der maximalen Anzahl von Teams und der Frist für die Einreichung. qiita1-3.png

  3. Holen Sie sich den Datensatz für den Wettbewerb von "Alle herunterladen" in "Daten". train.csv dient zum Lernen, test.csv dient zur Vorhersage, sample_submission.csv ist das Übermittlungsformat. qiita1-4.png

  4. Der Wettbewerb begann. Sie können auch mit Kaggles "Notizbücher" -Funktion erstellen und senden, aber ich habe es mit dem Jupyter-Notizbuch gemacht. Wenn Sie Anaconda installieren, wird es mit Ihnen geliefert, daher wird es empfohlen.

Analyse / Vorhersage (maschinelles Lernen)

Der allgemeine Fluss ist wie folgt.


1. 1. Importieren Sie verschiedene Module
   pandas, numpy, scipy etc...

2. Daten lesen
   read_Lesen Sie den Datensatz mit csv.

3. 3. Vorverarbeitung
Grundlegendes zu fehlenden Werten: Durch repräsentative Werte ersetzen, Durchschnitt oder Löschen. )
Datenaufteilung: Zug.CSV und Test.Teilen Sie csv in zwei Teile, einen zum Lernen und einen zum Vorhersagen.(X und Y.)

4. Modellieren
Linear, Entscheidungsbaum, neuronales Netzwerk usw....

5. Lernen mit einem Modell
Lerndaten geteilt durch 3 Begriffe(X_Zug und y_Trainieren), um das Modell zu trainieren (anzupassen).

6. Berechnung des vorhergesagten Wertes
Eine der Vorhersagedaten (X) unter Verwendung des Modells von 5 Begriffen_test)Vorhersagen(predict)Und berechnen Sie den vorhergesagten Wert.

7. Auswertung
Unter Verwendung des in Punkt 6 berechneten vorhergesagten Wertes y_Ordnen Sie die Antwort dem Test zu. (Sklearns Genauigkeit_Punktzahl verwenden)

8. Optimierung von Modellen, Parametern usw. (falls erforderlich)

Wie eingangs erwähnt, wird der Teil des maschinellen Lernens in diesem Artikel aufgrund der Regeln des Wettbewerbs, an dem ich teilgenommen habe, weggelassen, und die Analysemethode unterscheidet sich je nach Wettbewerb.

Es gibt viele nützliche Artikel über maschinelles Lernen, einschließlich der Erklärung von Titanic Passenger Survival Prediction. Bitte suchen Sie danach. Da dieser Wettbewerb bereits beendet ist, gibt es keine Preise usw., aber es ist einer der Wettbewerbe, der häufig als Tutorial für Anfänger im maschinellen Lernen empfohlen wird, und es wird sehr lehrreich sein, nur einmal die Hände zu bewegen, während Sie den Kommentarartikel lesen. Ich werde.

Vorhersagen einreichen

Nachdem Sie durch maschinelles Lernen ein zufriedenstellendes Modell erstellt haben, erstellen Sie eine Übermittlungsdatei. Jeder Datensatz in jedem Wettbewerb sollte ein Muster zur Einreichung haben, also formen Sie es entsprechend. Ich denke, es gibt verschiedene Möglichkeiten, dies zu tun, aber ich habe es mit ** dem Ergebnis der Vorhersage von test.csv (Zielspalte) und der Methode zum Ersetzen der Zielspalte von sample.csv ** getan. Natürlich unterscheidet sich die Verarbeitung je nach Art des Wettbewerbs, aber die Verarbeitung natürlicher Sprache hat die folgenden Formen.

python


# "test.csv"von"text"列vonみ抜き出す。
presub1 = test["text"]

#Vektorisieren. (Für Aufgaben zur Verarbeitung natürlicher Sprache.)
tfidf_vect = TfidfVectorizer()
presub2 = tfidf_vect.transform(presub1)

#Vorhersage mit dem erstellten Modell.
presub3 = model.predict(presub2)

# "sample.csv"Zielspalte und vorhergesagtes Ergebnis(Ersetzen Sie die Zielspalte.
sample["target"] = presub3

#Bestätigen Sie, dass es ersetzt werden kann. Diesmal benutze ich Print.
#Alle Zielspalten vor der Ausführung"0"Da es sich geändert hat, wird davon ausgegangen, dass es ersetzt wurde.
print(sample)

#Ausgabe in eine CSV-Datei. Da es einen Index (Seriennummer) hat, wird es diesmal auf False gesetzt.
#Das erste Argument ist der Name der Ausgabedatei. Ich hoffe ich kenne mich.
sample.to_csv('submission.csv', index = False)

Infolgedessen wird "submit.csv" in das aktuelle Verzeichnis ausgegeben. Wechseln Sie zur Seite des Teilnahmewettbewerbs und senden Sie diese wie folgt ab.

    1. Klicken Sie oben rechts auf dem Bildschirm auf "Vorhersagen senden" qiita2-1.png
  1. Ziehen Sie die CSV-Ausgabedatei per Drag & Drop zur Übermittlung an ① und klicken Sie auf ②, um sie nach Abschluss des Uploads zu übermitteln. Wenn es keine Anomalien gibt, wird es in der "Rangliste" registriert. qiita2-2.png

Damit ist die Veröffentlichung in Kaggle abgeschlossen. Nach dem Posten werden wir versuchen, Fehler zu machen, die auf eine höhere Genauigkeit abzielen, und mit anderen Teilnehmern konkurrieren. Es gibt viele Punkte, die entwickelt werden können, z. B. die Vorverarbeitung, das Ändern von Modellen, das Überlagern von Modellen und das Optimieren von Parametern. Einige haben ihre eigenen Kernel veröffentlicht, während andere die Genauigkeit mit erstaunlichen Techniken verfolgen.

Leider scheint es neulich ein Leck in den Ergebnissen dieses Wettbewerbs gegeben zu haben, und die Rangliste ist mit Punktzahl 1,0 (perfekte Punktzahl) gefüllt ... Weil es auch solche Dinge gibt.

abschließend

Der Datensatz wird vom vorhandenen Modell leicht verarbeitet und trainiert, der vorhergesagte Wert wird ausgegeben und erneut in die CSV-Datei ausgegeben und gesendet. Rückblickend ist es keine große Sache, aber für mich, der ich angefangen habe, ohne Code- oder Schreiberfahrung zu lernen und nicht zu wissen, was das Terminal ist, war der Weg bis zu diesem Punkt eine Reihe von Schwierigkeiten. ..

Die Punktzahlen sind zu diesem Zeitpunkt nicht gut und sie sollten nicht klug sein, wie man Code schreibt. Ich konnte jedoch viel tragen, indem ich durch Versuch und Irrtum postete. Natürlich gibt es noch viel zu lernen, deshalb werde ich weiterhin hart an meiner Selbstverbesserung arbeiten.

Es war ein kindischer Inhalt, aber ich hoffe, dieser Artikel wird Menschen in ähnlichen Positionen helfen. Danke fürs Lesen.

Recommended Posts

Eine Geschichte, die ein Amateur, der das Terminal über 3 Wochen nicht kennt, in Kaggle gepostet hat
Eine Geschichte über einen Ingenieur, der nur auf der Serverseite kam, erstellte ein Portfolio
Sprechen Sie über die Fluchtwahrscheinlichkeit eines zufälligen Gehens auf einem ganzzahligen Gitter
[Python] Ein Fortschrittsbalken auf dem Terminal