Bereite die Daten vor
Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 51 von 58.
Ein Modell liest nur vollständige Zahlenzeilen. Bei den Pinguinen gibt es Lücken und zwei Textspalten, deshalb läuft jede Spalte durch eine eigene Pipeline:
Fehlende Textwerte erhalten das Wort "unknown": Ein Pinguin mit nicht erfasstem Geschlecht bekommt eine eigene Spalte statt einer Schätzung.
text_steps = make_pipeline(
SimpleImputer(strategy="constant", fill_value="unknown"),
OneHotEncoder())Passe die Pipelines nur an die Trainingszeilen an. Ein Median, der die Testpinguine gesehen hat, würde sie in die Trainingsdaten einfließen lassen.
Aufgabe
MittelDie Pinguine brauchen die Bahnen aus dem Bild. Der Starter teilt sie auf und liest eine Zeilennummer ein.
- Erstelle
prep, einenColumnTransformer, dernumbersin die Zahlenbahn undtextin die Textbahn leitet. - Fitte ihn auf den Trainingszeilen und transformiere sie in einem Aufruf.
- Gib zuerst die Größe und die Lücken aus, dann die Größe danach und schließlich die vorbereitete Zeile, auf 2 Dezimalstellen gerundet.
Für eine andere Kolonie und die Zeile 3:
Before: 180 penguins, 6 columns, 9 gaps
After: 180 penguins, 10 columns
Penguin 3: [-1.12 0.47 -0.83 -0.6 0. 1. 0. 0. 1. 0. ]Zeile 14 ist ein Pinguin, den niemand messen konnte. Was wird aus ihm?
Probier es selbst
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import make_pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
# Die Kolonie aus Meet the Penguins, ihre Merkmale und ihre Zielvariable
penguins = pd.read_csv("penguins.csv")
numbers = ["bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g"]
text = ["island", "sex"]
X = penguins[numbers + text]
y = penguins["species"]
# Zuerst aufteilen: Die Testpinguine bleiben bis Ship the Model unter Verschluss
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, stratify=y, random_state=0)
row = int(input())
# Schreibe deinen Code unten
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Überwachtes Lernen
1Dein erstes Modell
Aus Beispielen lernenTrainings- und TestdatensätzeAnpassen und VorhersagenEin Modell bewertenRückblick: Saatgutsortierer4Logistische Regression
Ja-Nein-VorhersagenDie EntscheidungsschwelleGewichte als IndizienMehrere KlassenRückblick: Spamfilter2Nächste Nachbarn
So entscheidet k-NNk wählenEntscheidungsgrenzenSkalierung für NachbarnRückblick: Wein-Nachbarn5Klassifikatoren bewerten
Die KonfusionsmatrixPräzision und TrefferquoteDer F1-ScoreUnausgewogene KlassenROC-KurvenRückblick: Screeningtest8Kreuzvalidierung
K-Fold-ValidierungModelle fair vergleichenGittersucheRückblick: Skateboard-Reparaturen11Projekt: Pinguinarten
Lerne die Pinguine kennenBereite die Daten vorWähle ein ModellOptimiere den SiegerBringe das Modell in den Einsatz3Lineare Regression
Zahlen vorhersagenMehrere MerkmaleFehler messenResiduenplotsZusammenfassung: Fahrradverleih6Entscheidungsbäume
Bäume stellen FragenEinen Baum lesenBaumtiefeMerkmalswichtigkeitRückblick: Kreditentscheidungen9Ensembleverfahren
Random ForestsWarum Random Forests funktionierenGradient BoostingRückblick: Förster des Waldes12Abschließende Herausforderungen
Diabetes-FortschrittKreditgenehmigungHandgeschriebene ZiffernKundenabwanderungÜbe selbstständig: Online-Python-Compiler