Dieser Artikel ist der Artikel zum 23. Tag von PONOS Adventskalender 2019.
Dieser Artikel soll Ihnen einen schnellen Test des maschinellen Lernens ohne den Aufwand von Vorbereitungsarbeiten geben. Ich werde nicht auf detaillierte Methodenerklärungen oder Problemlösungsmethoden eingehen.
Registrieren wir uns zunächst unter Kaggle (Kaggle). Kaggle ist eine Plattform, auf der sich Datenwissenschaftler und Ingenieure für maschinelles Lernen auf der ganzen Welt Tag und Nacht rasieren. Die Ausführungsumgebung von Python wird im Web vorbereitet, und alle erforderlichen Bibliotheken und Lerndaten sind verfügbar, sodass Sie sie sofort ausprobieren können, ohne die Umgebung lokal zu erstellen.
Bei Kaggle finden täglich Wettbewerbe statt, bei denen Sie verschiedene Daten berühren können. Dieses Mal verwenden wir Titanic: Maschinelles Lernen aus Katastrophen, das immer als Tutorial geöffnet ist und nicht als Wettbewerb. Mit diesem Wettbewerb soll anhand der Passagierliste der Titanic (Name, Alter, Geschlecht, Kabinenklasse usw.) festgestellt werden, ob ein Passagier ohne Überlebensinformationen überlebt hat und ob er als Trainingsdaten überlebt hat oder nicht.
Sie können teilnehmen, indem Sie auf Wettbewerb anmelden klicken.
Sie können es erstellen, indem Sie auf der Registerkarte Notizbücher auf Neues Notizbuch klicken. Gehen Sie zum Einstellungsbildschirm. Sie können die Standardeinstellung beibehalten. Drücken Sie einfach auf Erstellen.
Schauen wir uns zunächst die zu lernenden Daten an. Löschen Sie den von Anfang an geschriebenen Code und schreiben Sie den folgenden Code.
cell1
import pandas as pd
Sie können den Inhalt dieser Zelle ausführen, indem Sie Strg + Eingabetaste drücken oder die Wiedergabetaste links drücken. Hier ändert sich nichts, da wir nur die Bibliothek laden. Drücken Sie den Code b oder + am unteren Rand der Zelle, um eine neue Zelle hinzuzufügen und den folgenden Code zu schreiben.
cell2
train = pd.read_csv('../input/titanic/train.csv')
test = pd.read_csv('../input/titanic/test.csv')
passenger_id = test.PassengerId #Zur Einreichung speichern
train.head(3)
Wenn Sie es ausführen und die Tabelle angezeigt wird, ist es erfolgreich. Dieses Mal werden wir Survived, Pclass, Sex, Age, SibSp, Parch, Fare, Embarked verwenden.
cell2
train = train.iloc[:, [1, 2, 4, 5, 6, 7, 9, 11]]
test = test.iloc[:, [1, 3, 4, 5, 6, 8, 10]]
Zum Lernen werden numerische Daten benötigt, daher werden wir die Daten formatieren. Reparieren Sie zunächst den Datenverlust. Da train.Age, train.Embarked, test.Age und test.Fare fehlende Daten haben, füllen Sie diese mit guten Shioume-Nummern. Dieses Mal ist Embarked mit S gefüllt, und die anderen sind mit dem Medianwert gefüllt.
cell2
train.Age = train.Age.fillna(train.Age.median())
train.Embarked = train.Embarked.fillna('S')
test.Age = test.Age.fillna(test.Age.median())
test.Fare = test.Fare.fillna(test.Fare.median())
Als nächstes konvertieren Sie Sex und Embarked in Zahlen mit einer Hot-Codierung.
cell2
train = pd.get_dummies(train)
test = pd.get_dummies(test)
Konvertieren Sie schließlich Alter und Tarif in diskrete Werte. Da es numpy verwendet, wird die Bibliothek geladen.
cell1
import numpy as np
cell2
train.Age = np.digitize(train.Age, bins=[10, 20, 30, 40, 50])
train.Fare = np.digitize(test.Fare, bins=[10, 20, 30])
test.Age = np.digitize(train.Age, bins=[10, 20, 30, 40, 50])
test.Fare = np.digitize(test.Fare, bins=[10, 20, 30])
Dieses Mal werden wir einen zufälligen Wald verwenden. Es ist eine Methode, um leicht unterschiedliche Entscheidungsbäume zu lernen und diese zu mitteln. Laden Sie zuerst die Bibliothek (scikit-learn).
cell1
from sklearn.ensemble import RandomForestClassifier
Trennen Sie die Überlebenden von den Trainingsdaten. Fügen Sie eine neue Zelle hinzu und schreiben Sie den folgenden Code.
cell3
X = train.iloc[:, 1:]
y = train.iloc[:, 1]
Nachdem die Trainingsdaten fertig sind, trainieren wir.
cell3
forest = RandomForestClassifier(n_estimators=5, random_state=0)
forest.fit(X, y)
Nachdem wir gelernt haben, werden wir anhand von Testdaten Vorhersagen treffen.
cell3
predictions = forest.predict(test)
Speichern Sie abschließend das Vorhersageergebnis in einer Datei.
cell3
submission = pd.DataFrame({ 'PassengerId': passenger_id, 'Survived': predictions })
submission.to_csv('submission.csv', index=False)
Drücken Sie die Commit-Taste, um ein Popup-Fenster anzuzeigen. Klicken Sie auf die Schaltfläche Version öffnen, wenn Sie fertig sind. In der Spalte Ausgabe des neu geöffneten Bildschirms befinden sich die zuvor gespeicherte Datei submit.csv und die Schaltfläche An Wettbewerb senden. Drücken Sie sie also. Die Punktzahl wird angezeigt, wenn die Einreichung abgeschlossen ist. Ich denke, es wird ungefähr 0,76 sein (je näher es an 1 liegt, desto besser ist die Punktzahl).
Da ich diesmal versucht habe, wird der Lernteil hauptsächlich von der Bibliothek erledigt. Die eigentliche Schwierigkeit war überwiegend der Datenformteil (schwieriger, wenn Sie die Genauigkeit verbessern wollten). Diejenigen, die in dieser Art von Arbeit gut sind, möchten vielleicht den Weg des maschinellen Lernens beschreiten.
Recommended Posts