Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Endelig Estimator | Pipelines
Introduktion til Maskinlæring med Python

bookEndelig Estimator

Pipeline blev tidligere brugt til forbehandling, men dens egentlige formål er at kæde forbehandling sammen med en endelig prædiktor. Det sidste trin i en pipeline kan være enhver estimator (typisk en model), der genererer forudsigelser.

Note
Bemærk

Ved kald af .fit() udfører hver transformer .fit_transform(). Ved kald af .predict() anvender pipelinen .transform() før data sendes til den endelige estimator. Dette er nødvendigt, fordi nye data skal transformeres nøjagtigt som træningsdataene.

Hvorfor .transform()?

Brug af .fit_transform() på nye data kan ændre kodninger (f.eks. i OneHotEncoder), hvilket kan skabe uoverensstemmende kolonner og upålidelige forudsigelser. .transform() garanterer konsekvent forbehandling, ignorerer ukendte kategorier og bevarer samme kolonnerækkefølge.

Sådan ser one-hot kodede træningsdata ud:

Her er de nye instanser, der skal forudsiges:

Hvis .fit_transform() blev anvendt på nye instanser, kunne OneHotEncoder generere kolonner i en anden rækkefølge eller endda tilføje nye. Dette ville medføre, at de nye data blev transformeret inkonsistent med træningssættet, hvilket gør forudsigelser upålidelige.

Dog der sikrer brugen af .transform(), at de nye data bliver kodet præcis som træningsdataene, og ignorerer kategorier, der ikke blev set under træningen:

Tilføjelse af den endelige estimator

Tilføj blot modellen som sidste trin i pipelinen:

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

Dette gør det muligt at køre hele arbejdsgangen—præprocessering + forudsigelse—med ét kald.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 3.13

bookEndelig Estimator

Stryg for at vise menuen

Pipeline blev tidligere brugt til forbehandling, men dens egentlige formål er at kæde forbehandling sammen med en endelig prædiktor. Det sidste trin i en pipeline kan være enhver estimator (typisk en model), der genererer forudsigelser.

Note
Bemærk

Ved kald af .fit() udfører hver transformer .fit_transform(). Ved kald af .predict() anvender pipelinen .transform() før data sendes til den endelige estimator. Dette er nødvendigt, fordi nye data skal transformeres nøjagtigt som træningsdataene.

Hvorfor .transform()?

Brug af .fit_transform() på nye data kan ændre kodninger (f.eks. i OneHotEncoder), hvilket kan skabe uoverensstemmende kolonner og upålidelige forudsigelser. .transform() garanterer konsekvent forbehandling, ignorerer ukendte kategorier og bevarer samme kolonnerækkefølge.

Sådan ser one-hot kodede træningsdata ud:

Her er de nye instanser, der skal forudsiges:

Hvis .fit_transform() blev anvendt på nye instanser, kunne OneHotEncoder generere kolonner i en anden rækkefølge eller endda tilføje nye. Dette ville medføre, at de nye data blev transformeret inkonsistent med træningssættet, hvilket gør forudsigelser upålidelige.

Dog der sikrer brugen af .transform(), at de nye data bliver kodet præcis som træningsdataene, og ignorerer kategorier, der ikke blev set under træningen:

Tilføjelse af den endelige estimator

Tilføj blot modellen som sidste trin i pipelinen:

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

Dette gør det muligt at køre hele arbejdsgangen—præprocessering + forudsigelse—med ét kald.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 5
some-alt