[PYTHON] In 100 Tagen sind Sie Ingenieur. ――Tag 79 ――Programmieren ――Über maschinelles Lernen 4

Klicken Sie hier bis gestern

Sie werden in 100 Tagen Ingenieur - Tag 76 - Programmierung - Über maschinelles Lernen

Sie werden Ingenieur in 100 Tagen - Tag 70 - Programmieren - Über Scraping

Sie werden in 100 Tagen Ingenieur - Tag 66 - Programmierung - Über die Verarbeitung natürlicher Sprache

Sie werden in 100 Tagen Ingenieur - Tag 63 - Programmierung - Über Wahrscheinlichkeit 1

Sie werden in 100 Tagen Ingenieur - Tag 59 - Programmierung - Über Algorithmen

Sie werden in 100 Tagen Ingenieur --- Tag 53 - Git - Über Git

Sie werden in 100 Tagen Ingenieur - Tag 42 - Cloud - Über Cloud-Dienste

Sie werden in 100 Tagen Ingenieur - Tag 36 - Datenbank - Über die Datenbank

Sie werden Ingenieur in 100-Tage-24-Python-Grundlagen der Python-Sprache 1

Sie werden in 100 Tagen Ingenieur - Tag 18 - JavaScript - Grundlagen von JavaScript 1

Sie werden in 100 Tagen Ingenieur - 14. Tag - CSS - CSS-Grundlagen 1

Sie werden in 100 Tagen Ingenieur - Tag 6 - HTML - HTML-Grundlagen 1

Diese Zeit ist eine Fortsetzung der Geschichte über maschinelles Lernen.

Über den Datenverarbeitungsfluss des maschinellen Lernens

Der Arbeitsfluss beim Einbeziehen von maschinellem Lernen ist wie folgt.

  1. Bestimmen Sie den Zweck
  2. Datenerfassung
  3. Datenverständnis / Auswahl / Verarbeitung
  4. Erstellung des Data Mart (Datensatz)
  5. Modellerstellung
  6. Überprüfung der Genauigkeit
  7. Systemimplementierung

Davon werden 2-3 Teile als Datenvorverarbeitung bezeichnet.

Dieses Mal möchte ich aus dieser Vorverarbeitung einen Datamart erstellen.

Informationen zum Erstellen eines Data Mart

Sprache ist Python Bibliotheken für maschinelles Lernen sind "Pandas" und "Numpy" Die Bibliothek zur Visualisierung verwendet "seaborn", "matplotlib".

** Laden der Bibliothek **

#Bibliothek laden
import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')

%matplotlib inline

** Datenangaben **

Die diesmal verwendeten Daten sind die "Titanic Passagierliste".

PassengerID:Passagierausweis
Survived:Überlebensergebnis(0=Tod, 1=Überleben)
Pclass:Passagierklasse(Ich scheint der Beste zu sein)
Name:Passagier-Name
Sex:Sex
Age:Alter
SibSp Anzahl der Brüder und Ehepartner
Parch Anzahl der Eltern und Kinder
Ticket Ticketnummer
Tarifgebühr
Kabinenraumnummer
Eingeschiffter Hafen an Bord

Angenommen, Sie haben eine Datei mit dem Namen "titanic_train.csv".

** Datei lesen **

In der Pandas-Bibliothek gibt es viele Lesemethoden für das Dateiformat "read_xxx". Verwenden Sie sie daher zum Lesen der Datei. Diesmal handelt es sich um eine CSV-Datei, also um "read_csv".

Die Pandas-Bibliothek ist eine Bibliothek, die Datenformate verarbeitet, die als tabellarische Datenrahmen bezeichnet werden. Laden Sie die Datei in den Datenrahmen.

#Daten aus Datei lesen
file_path = 'data/titanic_train.csv'
train_df = pd.read_csv(file_path,encoding='utf-8')
train_df.head()
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.25 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.925 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.1 C123 S
4 5 0 3 Allen, Mr. William Henry male 35 0 0 373450 8.05 NaN S

Die Daten sehen so aus.

Beim letzten Mal habe ich mir den Inhalt verschiedener Daten angesehen und gefragt, welche Art von Daten verwendet werden könnten. Dieses Mal werden wir damit fortfahren, Daten verwenden, die als verwendbar erscheinen, und sie in Daten für maschinelles Lernen integrieren.

** Auf fehlende Werte prüfen **

Wenn Daten gelesen werden und keine Daten vorhanden sind, werden sie als fehlender Wert im Datenrahmen behandelt.

Wie viele fehlende Werte sind Datenrahmen .isnull (). Sum () Sie können die Anzahl der fehlenden Werte in jeder Spalte mit überprüfen.

train_df.isnull().sum()

PassengerId 0 Survived 0 Pclass 0 Name 0 Sex 0 Age 177 SibSp 0 Parch 0 Ticket 0 Fare 0 Cabin 687 Embarked 2 dtype: int64

Betrachtet man dies, so scheinen nur einige Spalten fehlende Werte zu haben. Es scheint einen Defekt in "Age", "Cabin" und "Embarked" zu geben.

Lassen Sie uns nur das Teil mit dem fehlenden Wert anzeigen.

** Extrahieren Sie Zeilen, die den Bedingungen entsprechen **

Datenrahmen [bedingter Ausdruck]

** Zeilen mit fehlenden Werten extrahieren **

Datenrahmen [Datenrahmen ['Spaltenname']. Isnull ()]

train_df[train_df['Embarked'].isnull()]
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
61 62 1 1 Icard, Miss. Amelie female 38 0 0 113572 80 B28 NaN
829 830 1 1 Stone, Mrs. George Nelson (Martha Evelyn) female 62 0 0 113572 80 B28 NaN

Betrachtet man den Wert in der Spalte "Eingeschifft", so ist dies "NaN". Fehlende Werte im Datenrahmen werden als "NaN" angezeigt.

Bei fehlenden Nummern ·Durchschnittswert ·Median ・ Beliebiger Wert In vielen Fällen werden fehlende Werte ergänzt.

Kategoriewerte wie "Eingeschifft" sind keine Zahlen und können nicht durch Zahlen ersetzt werden.

Wenn Sie die fehlenden Werte eingeben möchten, können Sie sie mit fillna füllen.

** Ergänzen Sie fehlende Werte mit beliebigen Werten **

Datenrahmen .fillna (Füllwert)

Wenn Sie den Durchschnittswert dieser Spalte ergänzen möchten, suchen Sie zuerst den Durchschnittswert.

** Spaltenmittel berechnen **

Datenrahmen ['Spaltenname']. Mean ()

** Finde den Medianwert der Spalte **

Datenrahmen ['Spaltenname']. Median ()

print(train_df['Fare'].mean())
print(train_df['Fare'].median())

32.2042079685746 14.4542

#Ergänzungsalter mit Durchschnittswert
train_df['Age'] = train_df['Age'].fillna(train_df['Age'].mean())

** Vektorisierung von Kategoriewerten **

Beim maschinellen Lernen müssen grundsätzlich alle für die Berechnung verwendeten Werte numerische Werte sein. Bei einem Kategoriewert, der aus Zeichenfolgen besteht, kann er in vielen Fällen, mit Ausnahme einiger Modelle, nicht als maschinelles Lerndaten verwendet werden.

Daher wird der Kategoriewert als "One-Hot-Vektor" in einen numerischen Wert umgewandelt.

** Machen Sie den Kategoriewert zu einem One-Hot-Vektor **

one-hot vector sind die Daten, die eine Spalte mit Kategoriewerten erstellen und den Wert auf 1 setzen, wenn der Spaltenname unterschiedlich ist, und auf 0, wenn der Wert unterschiedlich ist.

pd.get_dummies (Datenrahmen [['Spaltenname']])

#Klassifizierung der Einstiegsorte
train_df["Embarked"] = train_df["Embarked"].fillna('N')
one_hot_df = pd.get_dummies(train_df["Embarked"],prefix='Em')
one_hot_df.head()
Em_C Em_N Em_Q Em_S
0 0 0 0 1
1 1 0 0 0
2 0 0 0 1
3 0 0 0 1
4 0 0 0 1

Da die Spalte "Eingeschifft" einen Fehler aufweist, wird der Fehler durch "N" ersetzt und anschließend der Kategoriewert verwendet. Erzeugt einen neuen Datenrahmen, der durch 1 ersetzt wird, wenn ein Kategoriewert vorhanden ist, und 0, wenn dies nicht der Fall ist.

Sie erstellen Spalten für jeden Datentyp. Wenn es zu viele Datentypen gibt, sind die Daten roh (fast 0). Es ist eine gute Idee, kategoriale Variablen nur für diejenigen zu erstellen, die in gewissem Umfang eingeschränkt sind.

** Umwandlung von Zahlen und Zeichenfolgen ** Wir werden die Daten von einer Zeichenfolge in einen numerischen Wert ändern oder den numerischen Wert in eine Zeichenfolge ändern, um Daten zu erhalten, die für maschinelles Lernen verwendet werden können.

Da "Geschlecht (Geschlecht)" eine Zeichenkette ist, kann sie nicht wie sie ist für maschinelles Lernen verwendet werden. Wir werden von einer Zeichenfolge in einen numerischen Wert konvertieren.

Datenrahmen ['Spaltenname']. Ersetzen ({Wert: Wert, Wert: Wert ...})

#Geschlechtsquantifizierung(0 Männer,1 Frau)
train_df['Sex2'] = train_df['Sex'].replace({'male':0,'female':1})
train_df.head()
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked Sex2
0 1 0 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.25 NaN S 0
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38 1 0 PC 17599 71.2833 C85 C 1
2 3 1 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.925 NaN S 1
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.1 C123 S 1
4 5 0 3 Allen, Mr. William Henry male 35 0 0 373450 8.05 NaN S 0

Erstellt eine neue Geschlechtsspalte.

Sie können auch Ersetzen verwenden, wenn Sie von einer Zahl in eine Zeichenfolge konvertieren. Beim Ändern des gesamten Datentyps einer Spalte

Datenrahmen ['Spaltenname']. Astype (np. Datentyp)

** Numerisierung **

Berechnen wir das Alter anhand des Alters. Wenn Sie das Alter durch 10 teilen, um das Alter zu erhalten. Sie können auch eine Spalte für fehlende Elemente ohne Alter erstellen.


#Alterskategorisierung
train_df['period'] = train_df['Age']//10
train_df['period'] = train_df['period'].fillna('NaN')
train_df['period'] = train_df['period'].astype(np.str)
period_df = pd.get_dummies(train_df["period"],prefix='Pe')
period_df.head()
Pe_0.0 Pe_1.0 Pe_2.0 Pe_3.0 Pe_4.0 Pe_5.0 Pe_6.0 Pe_7.0 Pe_8.0
0 0 0 1 0 0 0 0 0 0
1 0 0 0 1 0 0 0 0 0
2 0 0 1 0 0 0 0 0 0
3 0 0 0 1 0 0 0 0 0
4 0 0 0 1 0 0 0 0 0

** Datenrahmen kombinieren **

Wir werden die neu erstellten Datenrahmen zu einem kombinieren. Verwenden Sie pd.concat, um es zusammenzusetzen.

pd.concat ([Datenrahmen, Datenrahmen], Achse = 1)


con_df = pd.concat([train_df,period_df],axis=1)
con_df = pd.concat([con_df,one_hot_df],axis=1)
con_df.head(1)
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare ... Pe_3.0 Pe_4.0 Pe_5.0 Pe_6.0 Pe_7.0 Pe_8.0 Em_C Em_N Em_Q Em_S
0 1 0 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.25 ... 0 0 0 0 0 0 0 0 0 1

Sie haben die Datenrahmen jetzt horizontal verkettet.

** Unnötige Daten löschen **

Beim Kombinieren von Datenrahmen wird die ursprüngliche Spalte gelöscht, da die Daten vor der Konvertierung nicht erforderlich sind.

Data frame.drop (['Spaltenname'], Achse = 1)

data_df = con_df.drop(['PassengerId','Pclass','Name','Age','Ticket','Cabin','Embarked','period','Sex'], axis=1)
data_df.head()
Survived SibSp Parch Fare Sex2 Pe_0.0 Pe_1.0 Pe_2.0 Pe_3.0 Pe_4.0 Pe_5.0 Pe_6.0 Pe_7.0 Pe_8.0 Em_C Em_N Em_Q Em_S
0 0 1 0 7.25 0 0 0 1 0 0 0 0 0 0 0 0 0 1
1 1 1 0 71.2833 1 0 0 0 1 0 0 0 0 0 1 0 0 0
2 1 0 0 7.925 1 0 0 1 0 0 0 0 0 0 0 0 0 1
3 1 1 0 53.1 1 0 0 0 1 0 0 0 0 0 0 0 0 1
4 0 0 0 8.05 0 0 0 0 1 0 0 0 0 0 0 0 0 1

Alle Daten sind numerische Werte. Auf diese Weise kann es als endgültige Daten für maschinelles Lernen verwendet werden.

Zusammenfassung

Heute habe ich die Daten verarbeitet und einen Datamart für maschinelles Lernen erstellt. Wir haben heute nur wenige Verarbeitungsmethoden eingeführt.

Lassen Sie uns zuerst den rauen Fluss lernen. Und wenn Sie es bis zu einem gewissen Grad verstanden haben, halte ich es für eine gute Idee, Wege zu finden, um die Genauigkeit zu verbessern oder neue Methoden auszuprobieren.

21 Tage bis Sie Ingenieur werden

Informationen zum Autor

HP von Otsu py: http://www.otupy.net/

Youtube: https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter: https://twitter.com/otupython

Recommended Posts

In 100 Tagen sind Sie Ingenieur. ――Tag 82 ――Programmieren ――Über maschinelles Lernen 7
In 100 Tagen sind Sie Ingenieur. ――Tag 79 ――Programmieren ――Über maschinelles Lernen 4
In 100 Tagen sind Sie Ingenieur. ――Tag 76 ――Programmieren ――Über maschinelles Lernen
In 100 Tagen sind Sie Ingenieur. ――Tag 80 ――Programmieren ――Über maschinelles Lernen 5
In 100 Tagen sind Sie Ingenieur. ――Tag 78 ――Programmieren ――Über maschinelles Lernen 3
Sie werden in 100 Tagen Ingenieur. ――Tag 84 ――Programmieren ――Über maschinelles Lernen 9
In 100 Tagen sind Sie Ingenieur. ――Tag 83 ――Programmieren ――Über maschinelles Lernen 8
In 100 Tagen sind Sie Ingenieur. ――Tag 77 ――Programmieren ――Über maschinelles Lernen 2
In 100 Tagen sind Sie Ingenieur. ――Tag 85 ――Programmieren ――Über maschinelles Lernen 10
In 100 Tagen sind Sie Ingenieur. ――Tag 71 ――Programmieren ――Über das Schaben 2
In 100 Tagen sind Sie Ingenieur. ――Tag 61 ――Programmieren ――Über Erkundung
In 100 Tagen sind Sie Ingenieur. ――Tag 74 ――Programmieren ――Über das Schaben 5
In 100 Tagen sind Sie Ingenieur. ――Tag 73 ――Programmieren ――Über das Schaben 4
In 100 Tagen sind Sie Ingenieur. ――Tag 75 ――Programmieren ――Über das Schaben 6
In 100 Tagen sind Sie Ingenieur. ――Tag 68 ――Programmieren ――Über TF-IDF
In 100 Tagen sind Sie Ingenieur. ――Tag 70 ――Programmieren ――Über das Schaben
Sie werden in 100 Tagen Ingenieur - Tag 63 - Programmierung - Wahrscheinlichkeit 1
Sie werden in 100 Tagen Ingenieur. ――Tag 64 ――Programmieren ――Über Wahrscheinlichkeit 2
In 100 Tagen sind Sie Ingenieur. ――Tag 60 ――Programmieren ――Über Datenstruktur und Sortieralgorithmus
Sie werden in 100 Tagen Ingenieur - 27. Tag - Python - Python-Übung 1
Sie werden in 100 Tagen Ingenieur - Tag 34 - Python - Python-Übung 3
Sie werden in 100 Tagen Ingenieur - 31. Tag - Python - Python-Übung 2
Sie werden in 100 Tagen Ingenieur. ――Tag 67 ――Programmieren ――Über morphologische Analyse
Sie werden in 100 Tagen Ingenieur. ――Tag 66 ――Programmieren ――Über die Verarbeitung natürlicher Sprache
Sie werden in 100 Tagen Ingenieur. ――Tag 24 ―― Python ―― Grundlagen der Python-Sprache 1
Sie werden in 100 Tagen Ingenieur. ――Tag 30 ―― Python ―― Grundlagen der Python-Sprache 6
Sie werden in 100 Tagen Ingenieur. ――Tag 25 ―― Python ―― Grundlagen der Python-Sprache 2
Sie werden in 100 Tagen Ingenieur - 29. Tag - Python - Grundlagen der Python-Sprache 5
Sie werden in 100 Tagen Ingenieur - Tag 33 - Python - Grundlagen der Python-Sprache 8
Sie werden in 100 Tagen Ingenieur - 26. Tag - Python - Grundlagen der Python-Sprache 3
Sie werden in 100 Tagen Ingenieur - Tag 35 - Python - Was Sie mit Python tun können
Sie werden in 100 Tagen Ingenieur - Tag 32 - Python - Grundlagen der Python-Sprache 7
Sie werden in 100 Tagen Ingenieur - 28. Tag - Python - Grundlagen der Python-Sprache 4
Werden Sie bald KI-Ingenieur! Lernen Sie in wenigen Tagen umfassend Python / KI / Maschinelles Lernen / Deep Learning / Statistische Analyse!
Sie müssen vorsichtig mit den Befehlen sein, die Sie jeden Tag in der Produktionsumgebung verwenden.
Erstellen Sie mit Python eine interaktive Umgebung für maschinelles Lernen
Über das Testen bei der Implementierung von Modellen für maschinelles Lernen
Maschinelles Lernen Über Overlearning
Programmieren des Lernprotokolls 2. Tag
Bis ein Ingenieur, der einmal über maschinelles Lernen frustriert war, es schafft, maschinelles Lernen bei der Arbeit einzusetzen
[Maschinelles Lernen] Fassen wir die zufällige Gesamtstruktur auf leicht verständliche Weise zusammen
Maschinelles Lernen in Delemas (Praxis)
Eine Einführung in das maschinelle Lernen
Über maschinelles Lernen gemischte Matrix
Python Machine Learning Programming> Schlüsselwörter
Wird in EDA für maschinelles Lernen verwendet
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?
Lernen Sie maschinelles Lernen jederzeit und überall in der bedarfsgesteuerten Jupyter Notebook-Umgebung