Ticket class1 = 1st, 2 = 2nd, 3 = 3rd 1st = Upper, 2nd = Middle, 3rd = Lower
C = Cherbourg, Q = Queenstown, S = Southampton
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.
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.
Der Datenanalyse-Workflow erfüllt sieben Hauptziele.
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.
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.
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.
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.
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.
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.
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.
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
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
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)
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.
Für den Mittelwert kategorialer Daten
Mit nomineller Skala
Ordnungsskala)es gibt.
['PassengerId' ,'Survived' ,'Pclass' ,'Name' ,'Sex' ,'Age' ,'SibSp' ,'Parch','Ticket' ,'Fare' ,'Cabin' ,'Embarked']
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 sind Daten, die die Bestellung angeben. In Bezug auf diese Daten Pclass entspricht den Bestelldaten.
Es gibt zwei Arten von numerischen Werten: diskrete Daten und kontinuierliche Daten.
Diskrete Variable entspricht SibSp, Parch usw.
Kontinuierliche Daten entsprechen Alter, Tarif usw.
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()
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
Nach Duplikaten suchen
Verwenden Sie die Beschreibungsmethode.
train_df.describe()
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.
Aus diesen Daten möchte ich die sieben Ziele erreichen, die ich zuvor erwähnt habe.
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.
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.
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 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.
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).
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)
#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)
#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)
# 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)
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