Menu
CoddyTech

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:

Ein Diagramm eines Trainingspinguins. Seine vier Messwerte laufen durch eine blaue Pipeline, werden mit dem Median aufgefüllt und anschließend skaliert; heraus kommen -0.79, 0.00, -0.05 und -0.90. Seine Insel Biscoe und sein fehlendes Geschlecht laufen durch eine orange Pipeline, werden mit „unbekannt“ aufgefüllt und anschließend one-hot-kodiert; heraus kommen sechs Spalten mit 0 oder 1

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.

challenge icon

Aufgabe

Mittel

Die Pinguine brauchen die Bahnen aus dem Bild. Der Starter teilt sie auf und liest eine Zeilennummer ein.

  1. Erstelle prep, einen ColumnTransformer, der numbers in die Zahlenbahn und text in die Textbahn leitet.
  2. Fitte ihn auf den Trainingszeilen und transformiere sie in einem Aufruf.
  3. 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
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Überwachtes Lernen

Übe selbstständig: Online-Python-Compiler