Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Letzter Schätzer | Pipelines
Quizzes & Challenges
Quizzes
Challenges
/
Einführung in das Maschinelle Lernen mit Python

bookLetzter Schätzer

Pipeline wurde zuvor für die Vorverarbeitung verwendet, aber ihr eigentlicher 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 verändern (z. B. im OneHotEncoder), was zu nicht übereinstimmenden Spalten und unzuverlässigen Vorhersagen führt. .transform() garantiert eine konsistente Vorverarbeitung, ignoriert unbekannte Kategorien und behält die gleiche Spaltenreihenfolge bei.

So sieht die mit One-Hot-Encoding transformierte Trainingsdaten aus:

Dies sind die neuen Instanzen zur Vorhersage:

Wenn .fit_transform() auf neue Instanzen angewendet wird, könnte der OneHotEncoder die Spalten in einer anderen Reihenfolge erzeugen oder sogar neue hinzufügen. Dadurch würde die neue Daten inkonsistent zum Trainingssatz 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 vorhanden waren:

Hinzufügen des finalen Schätzers

Das Modell wird einfach als letzter Schritt der Pipeline hinzugefügt:

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.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

Awesome!

Completion rate improved to 3.13

bookLetzter Schätzer

Swipe um das Menü anzuzeigen

Pipeline wurde zuvor für die Vorverarbeitung verwendet, aber ihr eigentlicher 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 verändern (z. B. im OneHotEncoder), was zu nicht übereinstimmenden Spalten und unzuverlässigen Vorhersagen führt. .transform() garantiert eine konsistente Vorverarbeitung, ignoriert unbekannte Kategorien und behält die gleiche Spaltenreihenfolge bei.

So sieht die mit One-Hot-Encoding transformierte Trainingsdaten aus:

Dies sind die neuen Instanzen zur Vorhersage:

Wenn .fit_transform() auf neue Instanzen angewendet wird, könnte der OneHotEncoder die Spalten in einer anderen Reihenfolge erzeugen oder sogar neue hinzufügen. Dadurch würde die neue Daten inkonsistent zum Trainingssatz 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 vorhanden waren:

Hinzufügen des finalen Schätzers

Das Modell wird einfach als letzter Schritt der Pipeline hinzugefügt:

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.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 5
some-alt