Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Finaler Schätzer | Abschnitt
Grundlagen des Machine Learning

bookFinaler Schätzer

Pipeline wurde zuvor für die Vorverarbeitung verwendet, aber der eigentliche Zweck besteht darin, die Vorverarbeitung mit einem abschließenden Prädiktor zu verketten. Der letzte Schritt in einer Pipeline kann jeder beliebige Schätzer sein (typischerweise ein Modell), der Vorhersagen erzeugt.

Note
Hinweis

Beim Aufruf von .fit() führt jeder Transformer .fit_transform() aus. Beim Aufruf von .predict() verwendet die Pipeline .transform(), bevor die Daten an den finalen Schätzer weitergegeben werden. Dies ist erforderlich, da neue Daten exakt wie die Trainingsdaten transformiert werden müssen.

Warum .transform()?

Die Verwendung von .fit_transform() auf neuen Daten könnte Kodierungen ändern (z. B. im OneHotEncoder), was zu nicht übereinstimmenden Spalten und unzuverlässigen Vorhersagen führt. .transform() gewährleistet eine konsistente Vorverarbeitung, ignoriert unbekannte Kategorien und behält die gleiche Spaltenreihenfolge bei.

So sieht ein one-hot codierter Trainingsdatensatz aus:

Dies sind die neuen Instanzen zur Vorhersage:

Wenn .fit_transform() auf neue Instanzen angewendet würde, könnte der OneHotEncoder Spalten in einer anderen Reihenfolge erzeugen oder sogar neue hinzufügen. Dadurch würde die neue Datenbasis inkonsistent zum Trainingsdatensatz transformiert werden, was die Vorhersagen unzuverlässig macht.

Die Verwendung von .transform() stellt jedoch sicher, dass die neuen Daten genau wie die Trainingsdaten kodiert werden, wobei Kategorien ignoriert werden, die während des Trainings nicht gesehen wurden:

Hinzufügen des finalen Schätzers

Fügen Sie das Modell einfach als letzten Schritt der Pipeline hinzu:

pipe = make_pipeline(
    ct,
    SimpleImputer(strategy='most_frequent'),
    StandardScaler(),
    KNeighborsClassifier()
)
pipe.fit(X, y)
pipe.predict(X_new)

Dies ermöglicht es, den gesamten Workflow—Vorverarbeitung + Vorhersage—mit einem einzigen Aufruf auszuführen.

question mark

Welche Aussagen über den finalen Schätzer und die Vorverarbeitung in einer Pipeline sind korrekt?

Select all correct answers

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 21

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

bookFinaler Schätzer

Swipe um das Menü anzuzeigen

Pipeline wurde zuvor für die Vorverarbeitung verwendet, aber der eigentliche Zweck besteht darin, die Vorverarbeitung mit einem abschließenden Prädiktor zu verketten. Der letzte Schritt in einer Pipeline kann jeder beliebige Schätzer sein (typischerweise ein Modell), der Vorhersagen erzeugt.

Note
Hinweis

Beim Aufruf von .fit() führt jeder Transformer .fit_transform() aus. Beim Aufruf von .predict() verwendet die Pipeline .transform(), bevor die Daten an den finalen Schätzer weitergegeben werden. Dies ist erforderlich, da neue Daten exakt wie die Trainingsdaten transformiert werden müssen.

Warum .transform()?

Die Verwendung von .fit_transform() auf neuen Daten könnte Kodierungen ändern (z. B. im OneHotEncoder), was zu nicht übereinstimmenden Spalten und unzuverlässigen Vorhersagen führt. .transform() gewährleistet eine konsistente Vorverarbeitung, ignoriert unbekannte Kategorien und behält die gleiche Spaltenreihenfolge bei.

So sieht ein one-hot codierter Trainingsdatensatz aus:

Dies sind die neuen Instanzen zur Vorhersage:

Wenn .fit_transform() auf neue Instanzen angewendet würde, könnte der OneHotEncoder Spalten in einer anderen Reihenfolge erzeugen oder sogar neue hinzufügen. Dadurch würde die neue Datenbasis inkonsistent zum Trainingsdatensatz transformiert werden, was die Vorhersagen unzuverlässig macht.

Die Verwendung von .transform() stellt jedoch sicher, dass die neuen Daten genau wie die Trainingsdaten kodiert werden, wobei Kategorien ignoriert werden, die während des Trainings nicht gesehen wurden:

Hinzufügen des finalen Schätzers

Fügen Sie das Modell einfach als letzten Schritt der Pipeline hinzu:

pipe = make_pipeline(
    ct,
    SimpleImputer(strategy='most_frequent'),
    StandardScaler(),
    KNeighborsClassifier()
)
pipe.fit(X, y)
pipe.predict(X_new)

Dies ermöglicht es, den gesamten Workflow—Vorverarbeitung + Vorhersage—mit einem einzigen Aufruf auszuführen.

question mark

Welche Aussagen über den finalen Schätzer und die Vorverarbeitung in einer Pipeline sind korrekt?

Select all correct answers

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 1. Kapitel 21
some-alt