Laatste Estimator
Tot nu toe is de Pipeline voornamelijk gebruikt voor voorbewerking. Echter, voorbewerking is slechts een tussenstap. Nadat de gegevens zijn getransformeerd, worden ze doorgaans doorgegeven aan een voorspeller (model) om resultaten of voorspellingen te genereren.
De Pipeline-klasse ondersteunt dit door de estimator—vaak een voorspeller—als laatste stap toe te staan. De onderstaande illustratie laat zien hoe een Pipeline werkt wanneer het laatste onderdeel een voorspeller is.
Wanneer de .fit()-methode van een pipeline wordt aangeroepen, voert elke transformer .fit_transform() uit. Daarentegen past de pipeline bij het aanroepen van .predict() eerst .transform() toe op de gegevens voordat deze aan de voorspeller worden doorgegeven.
De .predict()-methode wordt voornamelijk gebruikt voor nieuwe instanties, die dezelfde transformaties moeten ondergaan als de trainingsgegevens tijdens .fit().
Waarom .transform()?
De pipeline past .transform() toe in plaats van .fit_transform() bij het verwerken van nieuwe gegevensinstanties voor voorspelling. Dit garandeert een consistente transformatie tussen trainings- en testsets.
Beschouw bijvoorbeeld een dataset met een categorisch kenmerk 'Color' dat gecodeerd moet worden vóór modeltraining:
Hier ziet u hoe one-hot gecodeerde trainingsgegevens eruitzien:
Hier zijn de nieuwe instanties om te voorspellen:
Als .fit_transform() zou worden toegepast op nieuwe instanties, kan de OneHotEncoder kolommen in een andere volgorde genereren of zelfs nieuwe toevoegen. Hierdoor zou de nieuwe data inconsistent met de trainingsset worden getransformeerd, waardoor voorspellingen onbetrouwbaar worden.
Het gebruik van .transform() zorgt er echter voor dat de nieuwe gegevens exact hetzelfde worden gecodeerd als de trainingsgegevens, waarbij categorieën die niet tijdens de training zijn gezien, worden genegeerd:
De Finale Estimator Toevoegen
Om de finale estimator te gebruiken, hoeft u deze alleen als laatste stap van de pipeline toe te voegen. In het volgende hoofdstuk gebruiken we bijvoorbeeld een KNeighborsClassifier-model als finale estimator.
De syntaxis is als volgt:
# 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)
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 3.13
Laatste Estimator
Veeg om het menu te tonen
Tot nu toe is de Pipeline voornamelijk gebruikt voor voorbewerking. Echter, voorbewerking is slechts een tussenstap. Nadat de gegevens zijn getransformeerd, worden ze doorgaans doorgegeven aan een voorspeller (model) om resultaten of voorspellingen te genereren.
De Pipeline-klasse ondersteunt dit door de estimator—vaak een voorspeller—als laatste stap toe te staan. De onderstaande illustratie laat zien hoe een Pipeline werkt wanneer het laatste onderdeel een voorspeller is.
Wanneer de .fit()-methode van een pipeline wordt aangeroepen, voert elke transformer .fit_transform() uit. Daarentegen past de pipeline bij het aanroepen van .predict() eerst .transform() toe op de gegevens voordat deze aan de voorspeller worden doorgegeven.
De .predict()-methode wordt voornamelijk gebruikt voor nieuwe instanties, die dezelfde transformaties moeten ondergaan als de trainingsgegevens tijdens .fit().
Waarom .transform()?
De pipeline past .transform() toe in plaats van .fit_transform() bij het verwerken van nieuwe gegevensinstanties voor voorspelling. Dit garandeert een consistente transformatie tussen trainings- en testsets.
Beschouw bijvoorbeeld een dataset met een categorisch kenmerk 'Color' dat gecodeerd moet worden vóór modeltraining:
Hier ziet u hoe one-hot gecodeerde trainingsgegevens eruitzien:
Hier zijn de nieuwe instanties om te voorspellen:
Als .fit_transform() zou worden toegepast op nieuwe instanties, kan de OneHotEncoder kolommen in een andere volgorde genereren of zelfs nieuwe toevoegen. Hierdoor zou de nieuwe data inconsistent met de trainingsset worden getransformeerd, waardoor voorspellingen onbetrouwbaar worden.
Het gebruik van .transform() zorgt er echter voor dat de nieuwe gegevens exact hetzelfde worden gecodeerd als de trainingsgegevens, waarbij categorieën die niet tijdens de training zijn gezien, worden genegeerd:
De Finale Estimator Toevoegen
Om de finale estimator te gebruiken, hoeft u deze alleen als laatste stap van de pipeline toe te voegen. In het volgende hoofdstuk gebruiken we bijvoorbeeld een KNeighborsClassifier-model als finale estimator.
De syntaxis is als volgt:
# 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)
Bedankt voor je feedback!