Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Definitieve Estimator | Sectie
Practice
Projects
Quizzes & Challenges
Quizzen
Challenges
/
Grondslagen van Machine Learning

bookDefinitieve Estimator

Pipeline werd eerder gebruikt voor preprocessing, maar het echte doel is om preprocessing te koppelen aan een eindvoorspeller. De laatste stap in een pipeline kan elke estimator zijn (meestal een model) die voorspellingen genereert.

Note
Opmerking

Bij het aanroepen van .fit() voert elke transformer .fit_transform() uit. Bij het aanroepen van .predict() gebruikt de pipeline .transform() voordat de gegevens naar de eindschatter worden gestuurd. Dit is vereist omdat nieuwe gegevens exact hetzelfde moeten worden getransformeerd als de trainingsgegevens.

Waarom .transform()?

Het gebruik van .fit_transform() op nieuwe gegevens kan coderingen wijzigen (bijvoorbeeld in OneHotEncoder), waardoor kolommen niet overeenkomen en voorspellingen onbetrouwbaar worden. .transform() garandeert consistente preprocessing, negeert onbekende categorieën en behoudt dezelfde kolomvolgorde.

Hier ziet u hoe één-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 data exact hetzelfde wordt gecodeerd als de trainingsdata, waarbij categorieën die tijdens de training niet zijn gezien, worden genegeerd:

De Finale Estimator Toevoegen

Voeg het model eenvoudig toe als de laatste stap van de pipeline:

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

Hierdoor kan de volledige workflow—preprocessing + voorspelling—met één aanroep worden uitgevoerd.

question mark

Welke uitspraken over de finale estimator en preprocessing in een pipeline zijn correct?

Select all correct answers

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 21

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

bookDefinitieve Estimator

Veeg om het menu te tonen

Pipeline werd eerder gebruikt voor preprocessing, maar het echte doel is om preprocessing te koppelen aan een eindvoorspeller. De laatste stap in een pipeline kan elke estimator zijn (meestal een model) die voorspellingen genereert.

Note
Opmerking

Bij het aanroepen van .fit() voert elke transformer .fit_transform() uit. Bij het aanroepen van .predict() gebruikt de pipeline .transform() voordat de gegevens naar de eindschatter worden gestuurd. Dit is vereist omdat nieuwe gegevens exact hetzelfde moeten worden getransformeerd als de trainingsgegevens.

Waarom .transform()?

Het gebruik van .fit_transform() op nieuwe gegevens kan coderingen wijzigen (bijvoorbeeld in OneHotEncoder), waardoor kolommen niet overeenkomen en voorspellingen onbetrouwbaar worden. .transform() garandeert consistente preprocessing, negeert onbekende categorieën en behoudt dezelfde kolomvolgorde.

Hier ziet u hoe één-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 data exact hetzelfde wordt gecodeerd als de trainingsdata, waarbij categorieën die tijdens de training niet zijn gezien, worden genegeerd:

De Finale Estimator Toevoegen

Voeg het model eenvoudig toe als de laatste stap van de pipeline:

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

Hierdoor kan de volledige workflow—preprocessing + voorspelling—met één aanroep worden uitgevoerd.

question mark

Welke uitspraken over de finale estimator en preprocessing in een pipeline zijn correct?

Select all correct answers

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 21
some-alt