Endelig 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.
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.
Tak for dine kommentarer!
Spørg AI
Spørg AI
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
Endelig 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.
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.
Tak for dine kommentarer!