Letzter 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 weitergegeben 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 mit One-Hot-Encoding transformierte Trainingsdaten aus:
Dies sind die neuen Instanzen zur Vorhersage:
Wenn .fit_transform() auf neue Instanzen angewendet wird, kann der OneHotEncoder die 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 codiert werden, wobei Kategorien ignoriert werden, die während des Trainings nicht aufgetreten sind:
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 eingesetzt.
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
Letzter 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 weitergegeben 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 mit One-Hot-Encoding transformierte Trainingsdaten aus:
Dies sind die neuen Instanzen zur Vorhersage:
Wenn .fit_transform() auf neue Instanzen angewendet wird, kann der OneHotEncoder die 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 codiert werden, wobei Kategorien ignoriert werden, die während des Trainings nicht aufgetreten sind:
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 eingesetzt.
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!