Abschließender Schätzer
Bis zu diesem Punkt wurde die Pipeline
hauptsächlich für die Vorverarbeitung verwendet. Die Vorverarbeitung ist jedoch nur ein Zwischenschritt. Nachdem die Daten transformiert wurden, werden sie typischerweise an einen Prädiktor (Modell) weitergegeben, um Ergebnisse oder Vorhersagen zu erzeugen.
Die Pipeline
-Klasse unterstützt dies, indem sie es ermöglicht, dass der Estimator—häufig ein Prädiktor—der letzte Schritt ist. Die folgende Abbildung zeigt, wie eine Pipeline
funktioniert, wenn ihre letzte Komponente ein Prädiktor ist.
Wenn die .fit()
-Methode einer Pipeline aufgerufen wird, führt jeder Transformer .fit_transform()
aus. Im Gegensatz dazu wendet die Pipeline bei einem Aufruf von .predict()
.transform()
auf die Daten an, bevor sie an den Prädiktor übergeben werden.
Die .predict()
-Methode wird hauptsächlich für neue Instanzen verwendet, die während .fit()
denselben Transformationen wie die Trainingsdaten unterzogen werden müssen.
Warum .transform()
?
Die Pipeline wendet .transform()
anstelle von .fit_transform()
an, wenn neue Dateninstanzen für Vorhersagen verarbeitet werden. Dies gewährleistet eine konsistente Transformation zwischen Trainings- und Testdaten.
Beispielsweise enthält ein Datensatz ein kategoriales Merkmal 'Color'
, das vor dem Modelltraining kodiert werden muss:
So sieht die one-hot codierte Trainingsdaten 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ürden die neuen Daten inkonsistent mit dem Trainingssatz transformiert, 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
Um den finalen Schätzer zu verwenden, muss dieser lediglich als letzter Schritt der Pipeline hinzugefügt werden. Im nächsten Kapitel wird beispielsweise ein KNeighborsClassifier
-Modell als finaler Schätzer verwendet.
Die Syntax lautet wie folgt:
# Creating a pipeline
pipe = make_pipeline(ct,
SimpleImputer(strategy='most_frequent'),
StandardScaler(),
KNeighborsClassifier()
)
# Training a model using pipeline
pipe.fit(X, y)
# Predicting new instances
pipe.predict(X_new)
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.13
Abschließender Schätzer
Swipe um das Menü anzuzeigen
Bis zu diesem Punkt wurde die Pipeline
hauptsächlich für die Vorverarbeitung verwendet. Die Vorverarbeitung ist jedoch nur ein Zwischenschritt. Nachdem die Daten transformiert wurden, werden sie typischerweise an einen Prädiktor (Modell) weitergegeben, um Ergebnisse oder Vorhersagen zu erzeugen.
Die Pipeline
-Klasse unterstützt dies, indem sie es ermöglicht, dass der Estimator—häufig ein Prädiktor—der letzte Schritt ist. Die folgende Abbildung zeigt, wie eine Pipeline
funktioniert, wenn ihre letzte Komponente ein Prädiktor ist.
Wenn die .fit()
-Methode einer Pipeline aufgerufen wird, führt jeder Transformer .fit_transform()
aus. Im Gegensatz dazu wendet die Pipeline bei einem Aufruf von .predict()
.transform()
auf die Daten an, bevor sie an den Prädiktor übergeben werden.
Die .predict()
-Methode wird hauptsächlich für neue Instanzen verwendet, die während .fit()
denselben Transformationen wie die Trainingsdaten unterzogen werden müssen.
Warum .transform()
?
Die Pipeline wendet .transform()
anstelle von .fit_transform()
an, wenn neue Dateninstanzen für Vorhersagen verarbeitet werden. Dies gewährleistet eine konsistente Transformation zwischen Trainings- und Testdaten.
Beispielsweise enthält ein Datensatz ein kategoriales Merkmal 'Color'
, das vor dem Modelltraining kodiert werden muss:
So sieht die one-hot codierte Trainingsdaten 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ürden die neuen Daten inkonsistent mit dem Trainingssatz transformiert, 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
Um den finalen Schätzer zu verwenden, muss dieser lediglich als letzter Schritt der Pipeline hinzugefügt werden. Im nächsten Kapitel wird beispielsweise ein KNeighborsClassifier
-Modell als finaler Schätzer verwendet.
Die Syntax lautet wie folgt:
# Creating a pipeline
pipe = make_pipeline(ct,
SimpleImputer(strategy='most_frequent'),
StandardScaler(),
KNeighborsClassifier()
)
# Training a model using pipeline
pipe.fit(X, y)
# Predicting new instances
pipe.predict(X_new)
Danke für Ihr Feedback!