Python: Schiffsüberlebensvorhersage Teil 1

Vorhersage der Überlebensrate

Datensatzdetails

Ticket class1 = 1st, 2 = 2nd, 3 = 3rd 1st = Upper, 2nd = Middle, 3rd = Lower

C = Cherbourg, Q = Queenstown, S = Southampton

Datenanalyse-Workflow

Wir werden in den folgenden sieben Schritten fortfahren.

1, Fragen, die Sie klären und Probleme definieren möchten 2, Erfassung von Trainings- und Testdaten 3, Datenformung, -erstellung, -bereinigung 4, Musteranalyse, Identifizierung und explorative Datenanalyse 5, Problemmodellierung, Vorhersage und Lösung 6, Visualisieren und Berichten von Schritten zur Problemlösung und endgültigen Lösungen 7, Einreichung der Ergebnisse Der obige Ablauf ist in allgemeiner Reihenfolge, es gibt jedoch Ausnahmen.

Fragen zur Klärung und Definition von Fragen

Definieren Sie in Wettbewerben wie Kaggle das zu lösende Problem Bietet einen Datensatz zum Trainieren eines Modells zur Lösung eines Problems Testen Sie die Modellergebnisse anhand des Testdatensatzes. Das Problem ist diesmal in Kaggle wie folgt definiert.

(1) Der Trainingsdatensatz gibt den Zustand (das Ergebnis) an, ob der Passagier "überlebt" oder "gestorben" ist, und dieser Datensatz kann verwendet werden, um ein Modell zu erstellen, das die Überlebensrate von Passagieren vorhersagt. ..

(2) Der Passagierstatus erhält keinen Passagierstatus. Sie können den Zustand der Passagiere vorhersagen, indem Sie das obige Überlebensvorhersagemodell auf den Testdatensatz anwenden.

(3) Für diese Aufgabe erstellen wir ein Modell, das die Überlebensrate von Passagieren anhand von Trainingsdaten vorhersagt, und wenden dieses Modell auf die Testdaten an, um die Überlebensrate von Passagieren vorherzusagen.

Workflow-Ziele

Der Datenanalyse-Workflow erfüllt sieben Hauptziele.

① Klassifizierung

Klassifizieren Sie die Daten in Gruppen. Eine Gruppe ist eine Sammlung von Daten mit denselben Eigenschaften. Wenn Sie zuerst die Gruppe überprüfen, anstatt die Daten einzeln zu überprüfen Sie können die Zeit verkürzen, die erforderlich ist, um die Art Ihrer Daten zu verstehen.

② Korrelieren

Wie einflussreich ist jede Variable auf das Ergebnis (beeinflusst sie das Ergebnis)? Finden Sie heraus, wie viel Beziehung (Kolinearität) zwischen Variablen besteht. Variablen sind messbare Daten wie Name, Alter, Geschlecht und Preis in diesem Datensatz. Variablen werden auch als Merkmalsgrößen bezeichnet und sind Faktoren, die die Ergebnisse beeinflussen.

③ Konvertierung

Um ein Modell zu erstellen, müssen Sie die Daten abhängig von der Art des verwendeten Algorithmus transformieren. Einige Algorithmen akzeptieren nur Datensätze, die nur aus Zahlen bestehen Einige Datensätze mit einer Mischung aus Zahlen und Kategoriewerten (Zeichenfolgen) werden ebenfalls akzeptiert. Im ersteren Fall ist es beispielsweise üblich, Kategoriewerte in binäre oder mehrwertige Werte umzuwandeln.

④ Abschluss

Wenn der Datensatz bei der Datenkonvertierung fehlende Werte enthält, muss er in geeigneter Weise ergänzt werden. Zum Beispiel komplett mit dem Durchschnittswert der Variablen, komplett mit 0 (Null) Ergänzen Sie beispielsweise mit Werten vor und nach. Eine andere Möglichkeit besteht darin, Variablen auszuschließen, bei denen zu viele Werte fehlen. Die ordnungsgemäße Ausführung dieser Vorgänge wirkt sich auf die Genauigkeit des später erstellten Modells aus.

⑤ Ändern

Wenn der Datensatz Ausreißer (Ausreißer) bei der Datenkonvertierung enthält Sie müssen es richtig beheben. Es kann auf die gleiche Weise wie die fehlende Wertvervollständigung behoben werden. Wenn die Anzahl der Ausreißer im Vergleich zur Anzahl der Daten sehr gering ist, können Sie die relevanten Daten ausschließen. Eine andere Möglichkeit besteht darin, Variablen mit zu vielen Ausreißern auszuschließen. Die ordnungsgemäße Ausführung dieser Vorgänge wirkt sich auf die Genauigkeit des später erstellten Modells aus.

⑥ Erstellen

Das Erstellen neuer Variablen aus vorhandenen Variablen oder das Kombinieren vorhandener Variablen ist ebenfalls eine effektive Methode. Sie können beispielsweise Paare stark korrelierter Variablen zu einer kombinieren. Auf diese Weise können Sie möglicherweise die Zeit reduzieren, die zum Erstellen des Modells erforderlich ist.

⑦ Grafik (Grafik)

Die visuelle Darstellung mithilfe von Diagrammen ist ein wirksames Mittel zur effizienten Interpretation von Analyseergebnissen. Es hat auch das Potenzial, Entscheidungen über das Problem zu fördern, das Sie lösen möchten.

Arbeitsablauf

Erfassung von Trainings- und Testdaten

Lassen Sie uns nun die Daten abrufen. Importieren Sie zunächst die verschiedenen erforderlichen Bibliotheken. (Wenn die Bibliothek nicht installiert ist, installieren Sie sie mit einem Befehl wie dem folgenden.)

Name des pip3-Installationspakets
#Zunaechst!Mit Befehlen können Sie UNIX-Befehle ausführen.

Wenn das sklearn-Modul nicht installiert ist, installieren Sie es wie folgt.

pip3 install sklearn

Daten bekommen

Die Pandas-Bibliothek ist nützlich für Aufgaben wie das Konvertieren von Daten. Verwenden Sie diese Bibliothek zunächst, um Trainings- und Testdatensätze im Datenrahmenformat abzurufen.

Um zu sehen, welche Art von Dateien im Verzeichnis (Ordner) vorhanden sind

Führen Sie den Befehl ls aus

(Dieses Mal werde ich die Daten, die ich vorbereitet habe, als Beispiel veröffentlichen.) Mit Trainingsdaten. / 8010_titanic_data / train.csv Sie können sehen, dass Testdaten vorhanden sind. / 8010_titanic_data / test.csv. Sie können die Dateien im aktuellen Verzeichnis überprüfen, indem Sie den Befehl ls ausführen.

2010_ml_introduction         README.md
2010_ml_introduction.1       Titanic Analysis Excercise.ipynb
4010_Pandas                  Titanic Analysis.ipynb
4040_data_visualization      titanic_data
4050_data_cleansing          kernel.ipynb
5010_regression              5020_classfication Kaggle

Verstehen Sie die Art der Daten

Pandas hilft Ihnen auch dabei, die Art Ihrer Daten zu verstehen. So konvertieren / ergänzen / ändern Sie Daten Mit anderen Worten, es ist notwendig, eine Richtlinie darüber zu erstellen, ob eine Vorverarbeitung durchgeführt werden soll.

Welche Funktionen können im Datensatz verwendet werden? Welche Art von Variablen (Features) gibt es bei Pandas? Lass uns einen Blick darauf werfen. Um es von Variablen in der Programmierung zu unterscheiden Im Folgenden werden die Variablen in der Analyse als "Merkmale" bezeichnet.

Hier ist der Code als Beispiel.

Es ist schwer, alles zu sehen, also schauen wir uns die ersten 5 Zeilen und die letzten 5 Zeilen an.

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

#1. train_Geben Sie den Feature-Betrag (= Spaltenname) von df aus.
print(train_df.columns.values)

#2. train_Geben Sie die ersten 5 Zeilen von df aus.
train_df.head(5)

#3. train_5 Zeilen vom Ende von df ausgeben.
train_df.tail(5)

#4. test_Geben Sie die ersten 5 Zeilen von df aus.
test_df.head(5)

#5. test_5 Zeilen vom Ende von df ausgeben.
test_df.tail(5)

Arten von Funktionen

Durch die bisherige Arbeit haben wir den Wert des Funktionsbetrags bestätigt. Als nächstes wird der Wert der Merkmalsmenge angegeben.

Für die Merkmalsmenge

Mit Kategoriewert (qualitative Daten)
Numerischer Wert(Quantitative Daten) existieren.

image.png

Kategoriewert

Für den Mittelwert kategorialer Daten

Mit nomineller Skala
Ordnungsskala)es gibt.
['PassengerId' ,'Survived' ,'Pclass' ,'Name' ,'Sex' ,'Age' ,'SibSp' ,'Parch','Ticket' ,'Fare' ,'Cabin' ,'Embarked']

Nenndaten

In diesem Datensatz sind die nominalen Skalen Survived, Sex und Emberked.

Diese Werte werden als Zeichenfolgen gespeichert. Zum Beispiel, wenn es Name ist Das ist Ware, Mr. Frederick. Survived wird je nach Sache als 1 oder 0 geschrieben Ursprünglich kann es als Ja oder Nein ausgedrückt werden.

Bestelldaten

Bestelldaten sind Daten, die die Bestellung angeben. In Bezug auf diese Daten Pclass entspricht den Bestelldaten.

Numerischer Wert

Es gibt zwei Arten von numerischen Werten: diskrete Daten und kontinuierliche Daten.

Diskrete Variable

Diskrete Variable entspricht SibSp, Parch usw.

Kontinuierliche Variable

Kontinuierliche Daten entsprechen Alter, Tarif usw.

Zählen Sie die Anzahl der fehlenden Werte

Jede Merkmalsmenge kann fehlende Werte enthalten. Überprüfen wir also die fehlenden Werte.

Verwenden Sie die Info-Methode, um den fehlenden Wert zu berechnen.
#1. train_Verwenden Sie die Info-Methode, um nach fehlenden Werten für alle Funktionen von df zu suchen.
train_df.info()

Welche Merkmalsmenge hat einen fehlenden Wert

Die folgenden Daten sind als Beispiel angegeben.

train_In df ist bekannt, dass insgesamt 891 Daten (Fälle) vorliegen.
Das heißt, die Daten

Mit dem Alter, das nur 714 hat
Mit nur 204 Kabinen
Eingeschifft mit nur 889
Fehlende Werte sind in der Merkmalsmenge enthalten.

train_df.info()

PassengerId    891 non-null int64
Survived       891 non-null int64
Pclass         891 non-null int64
Name           891 non-null object
Sex            891 non-null object
Age            714 non-null float64
SibSp          891 non-null int64
Parch          891 non-null int64
Ticket         891 non-null object
Fare           891 non-null float64
Cabin          204 non-null object
Embarked       889 non-null object

Außerdem testen_In df sind es insgesamt 418 Daten

Alter ist 332
Der Fahrpreis beträgt 417
Sie können sehen, dass Kabine 91 ist.

PassengerId    418 non-null int64
Pclass         418 non-null int64
Name           418 non-null object
Sex            418 non-null object
Age            332 non-null float64
SibSp          418 non-null int64
Parch          418 non-null int64
Ticket         418 non-null object
Fare           417 non-null float64
Cabin          91 non-null object
Embarked       418 non-null object

Suchen Sie nach doppelten Daten

Nach Duplikaten suchen

Verwenden Sie die Beschreibungsmethode.
train_df.describe()

image.png

Wenn Sie nur die erforderlichen Daten eingrenzen

train_df.describe(include=['O'])
#count ist die Anzahl der Daten (Anzahl der Fälle), unique ist die Anzahl der duplizierten Daten, top ist der am meisten enthaltene Wert und freq ist die Anzahl der top-Werte.
#Wenn Sie sich beispielsweise auf die eindeutige Merkmalsmenge Geschlecht (Geschlecht) konzentrieren, können Sie feststellen, dass zwei Werte erforderlich sind.
#Dies liegt daran, dass Sex männlich (männlich) und weiblich (weiblich) ist.

image.png

Datenanalyse-Richtlinie

Aus diesen Daten möchte ich die sieben Ziele erreichen, die ich zuvor erwähnt habe.

Korrelation

Die Feature-Menge Survived speichert den Passagierstatus (Ergebnis). Inwieweit hängen andere Funktionen wie Geschlecht und Alter mit dieser Funktion zusammen? Untersuchen Schauen Sie sich die Korrelation an, um die Beziehung herauszufinden.

Ergänzen

Von Variablen, die wahrscheinlich Survived beeinflussen (wahrscheinlich eine starke Beziehung haben) Wir werden die Speicherung von Daten priorisieren. Erstens scheinen Altersdaten mit Survived in Zusammenhang zu stehen Es muss ergänzt werden. Eingeschifft kann auch beteiligt sein.

Fix

1, Ticket hat eine hohe Duplizierungsrate (22%) und es besteht möglicherweise keine Korrelation zwischen Ticket und Survived. Tickets können aus dem für die Analyse verwendeten Datensatz ausgeschlossen werden.

2, Ist Cabin sowohl in Trainings- als auch in Testdatensätzen sehr unvollständig? Oder es enthält viele Nullwerte und kann entfernt werden.

3, PassengerId nimmt einen eindeutigen Wert an, der den Passagier identifiziert. Diese Funktion trägt nicht zum Überleben bei und kann aus dem Trainingsdatensatz entfernt werden.

4, Name nimmt auch einen eindeutigen Wert an, der den Passagier identifiziert, so dass er möglicherweise nicht zu Survived beiträgt.

Erstellen

Erstellen Sie eine neue Funktion namens Family basierend auf Parch und SibSp Möglicherweise möchten Sie die Gesamtzahl der Familien ermitteln.

Mit Name können Sie den Titel als neue Feature-Menge extrahieren. Zum Beispiel können Titel wie Herr und Frau die Überlebensrate ändern.

Möglicherweise können Sie eine neue Feature-Menge erstellen, indem Sie das Alter durch Angabe eines Bereichs teilen. Dies liegt daran, dass es einfacher ist vorherzusagen, ob kontinuierliche Daten in diskrete Daten konvertiert werden.

Wie bei Age kann Fare möglicherweise einen Bereich angeben und teilen, um eine neue Feature-Menge zu erstellen.

Einstufung

Lassen Sie uns auch die Daten überprüfen, die auf der Hypothese am Anfang basieren.

1, weiblich (Geschlecht = weiblich) war wahrscheinlich am Leben (überlebt = 1). 2, Es ist sehr wahrscheinlich, dass das Kind (Alter <?) Am Leben war (überlebt = 1). 3, Passagiere der höheren Klasse (Klasse = 1) überleben wahrscheinlich (überlebt = 1).

Aggregierte Merkmalsmengen in einer Pivot-Tabelle

Erstellen wir eine Pivot-Tabelle, um die Korrelation zwischen Features zu verstehen. Dies ist nur für Features möglich, die keine fehlenden Werte enthalten.

Auch nur für Features mit Kategorien- (Geschlecht), Ordnungs- (Pclass) oder diskreten (SibSp, Parch) Werten Es macht Sinn zu tun.

#Erstellen Sie zunächst eine Pivot-Tabelle für Klassen und Überleben.

#1.Erstellen Sie Pivot-Tabellen für Klassen und Überleben.
#Klasse ist 1-Es werden Bestelldaten bis zu 3 sein. Berechnen Sie den Durchschnittswert von Survived entsprechend.
train_df[["Pclass", "Survived"]].groupby(["Pclass"], as_index=False).mean().sort_values(by="Survived", ascending=False)

image.png

#1.Erstellt Sex und Survived Pivot-Tabellen. Sex ist weiblich,Es gibt zwei Daten für Männer. Berechnen Sie den Durchschnittswert von Survived entsprechend.
train_df[["Sex", "Survived"]].groupby(["Sex"], as_index=False).mean().sort_values(by="Survived", ascending=False)

image.png

#1.Parch- und Survived-Pivot-Tabellen erstellt. Parch ist 1~Es gibt 8 Daten. Berechnen Sie den Durchschnittswert von Survived entsprechend.
train_df[["Parch", "Survived"]].groupby(["Parch"], as_index=False).mean().sort_values(by="Survived", ascending=False)

image.png

# 1.Erstellt eine Pivot-Tabelle für SibSp und Survived. SibSp ist 1~Es gibt 8 Daten. Berechnen Sie den Durchschnittswert von Survived entsprechend.
train_df[["SibSp", "Survived"]].groupby(['SibSp'], as_index=False).mean().sort_values(by='Survived', ascending=False)

image.png

Klicken Sie hier für Referenzmaterialien [Zusammenfassung der Gruppierungs- / Aggregations- / Konvertierungsverarbeitung in Python-Pandas] (http://sinhrks.hatenablog.com/entry/2014/10/13/005327) [pandas.DataFrame, sort_values, sort_index zum Sortieren von Serien] (https://note.nkmk.me/python-pandas-sort-values-sort-index/)

Recommended Posts

Python: Schiffsüberlebensvorhersage Teil 2
Python: Schiffsüberlebensvorhersage Teil 1
Python: Schiffsüberlebensvorhersage Teil 3
QGIS + Python Teil 2
Python: Scraping Teil 1
Lösung Wenn Sie Python 3.6 oder höher verwenden, benötigen Sie die enum34-Bibliothek ebenfalls nicht. Deinstallieren Sie sie daher und verwenden Sie das Standard-Enum-Modul. Enum34 deinstallieren Führen Sie nach der Deinstallation von enum34 erneut `pip install optuna` aus und Sie haben Optuna erfolgreich installiert! Python, pip, Python3, enum, OptunaPython3 Beginn Teil 1
Python: Scraping Teil 2
Python Basic Memorandum Teil 2
Python-Grundnotiz - Teil 2
Python-Grundnotiz - Teil 1
Bildverarbeitung mit Python (Teil 2)
Python mit freeCodeCamp Teil1 studieren
Python-Anwendung: Pandas Teil 1: Basic
Python-Anwendung: Pandas Teil 2: Serie
Schaben mit Selen + Python Teil 1
Python: Überwachtes Lernen: Hyperparameter Teil 1
Python studieren mit freeCodeCamp part2
Bildverarbeitung mit Python (Teil 1)
Nampre mit Python lösen (Teil 2)
Bildverarbeitung mit Python (3)
Python: Aktienkursprognose Teil 2
UI-Automatisierung Teil 2 in Python
Python: Überwachtes Lernen: Hyperparameter Teil 2
Schaben mit Selen + Python Teil 2
Python x GIS-Grundlagen (1)
Python: Aktienkursprognose Teil 1
Verschieben von CSV-Dateien mit Python Teil 1
Perl-Objekt und Python-Klasse Teil 2.
Anwendung von Python: Datenbereinigung Teil 1: Python-Notation
[Mit Python automatisiert! ] Teil 1: Datei einstellen
Python-Anwendung: Datenverarbeitung # 3: Datenformat
Einführung in Python Hands On Teil 1
Python studieren Teil 1 Erstellen einer Umgebung
Python-Anwendung: Numpy Teil 3: Double Array
Grundlagen von Python x GIS (Teil 2)
Perl-Objekt und Python-Klasse Teil 1.
Automatisieren Sie einfache Aufgaben mit Python Part0
Python-Anwendung: Datenvisualisierung Teil 1: Grundlegend
[Mit Python automatisiert! ] Teil 2: Dateivorgang