Menu
CoddyTech

Eine Pipeline optimieren

Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 48 von 58.

Eine Pipeline lässt sich wie jedes Modell abstimmen, einschließlich der Bereinigungsschritte. Jede Einstellung wird anhand ihres Schritts, zweier Unterstriche und anschließend des Parameters benannt:

pipe = make_pipeline(SimpleImputer(), DecisionTreeClassifier(random_state=0))
grid = {"simpleimputer__strategy": ["mean", "median", "most_frequent"],
        "decisiontreeclassifier__max_depth": [2, 4, 6, 8]}
search = GridSearchCV(pipe, grid, cv=5)
search.fit(X_train, y_train)

make_pipeline benennt jeden Schritt nach seiner Klasse, in Kleinbuchstaben. Bei 200 Starts von Modellraketen, die 300 m erreichen oder nicht, erzielen die 12 Einstellungen:

Ein Raster mit mittleren CV-Genauigkeiten: Zeilen für die Mittelwert-, Median- und most_frequent-Imputation, Spalten für Baumtiefen 2, 4, 6 und 8. Die Werte reichen von 0.733 bis 0.820, und die Zelle für Median-Imputationen bei Tiefe 6 ist mit dem besten Wert von 0.820 markiert

Bei jedem Fold wird die gesamte Pipeline einschließlich des Imputers neu angepasst, sodass kein Fold Einblick in die Zeilen erhält, mit denen er getestet wird.

challenge icon

Aufgabe

Mittel

Eine Musikschule möchte wissen, welche Geigenschüler ihre Prüfungen für die jeweilige Leistungsstufe bestehen werden. Das Startprogramm liest drei Werte für k ein, und seine Gittersuche über eine Pipeline bricht mit einem Fehler ab.

  1. Korrigiere die beiden Schlüssel des Gitters, damit die Suche die Strategie des Imputers und die Nachbarn von k-NN abstimmt.
  2. Gib die besten Einstellungen, ihre kreuzvalidierte Genauigkeit und die Testgenauigkeit wie unten aus.

Eine andere Schule mit 2, 4, 6:

Best: mean fills, 6 neighbors
Cross-validated accuracy: 0.720
Test accuracy: 0.820

Probier es selbst

import pandas as pd
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline

# Geigenschüler: Sie haben ihre Stufenprüfung bestanden (1) oder nicht (0); einige Übungsprotokolle
# und Noten für das Blattspiel fehlen
students = pd.read_csv("violins.csv")
X = students.drop(columns="passed")
y = students["passed"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = [int(input()), int(input()), int(input())]

# Diese Suche bricht mit einem Fehler ab: Korrigiere das Grid
pipe = make_pipeline(SimpleImputer(), StandardScaler(), KNeighborsClassifier())
grid = {
    "strategy": ["mean", "median"],
    "n_neighbors": ks,
}
search = GridSearchCV(pipe, grid, cv=5)
search.fit(X_train, y_train)

# 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