Endelig Estimator
Indtil nu er Pipeline hovedsageligt blevet brugt til forbehandling. Forbehandling er dog kun et mellemliggende trin. Når dataene er transformeret, sendes de typisk videre til en prediktor (model) for at generere resultater eller forudsigelser.
Pipeline-klassen understøtter dette ved at tillade, at estimatoren—ofte en prediktor—er det sidste trin. Illustrationen nedenfor viser, hvordan en Pipeline fungerer, når dens sidste komponent er en prediktor.
Når .fit()-metoden på en pipeline kaldes, udfører hver transformer .fit_transform(). Omvendt, når .predict() kaldes, anvender pipelinen .transform() på dataene, før de sendes videre til prediktoren.
Metoden .predict() bruges primært til nye instanser, som skal gennemgå de samme transformationer som træningsdataene under .fit().
Hvorfor .transform()?
Pipelinen anvender .transform() i stedet for .fit_transform() ved håndtering af nye datainstanser til forudsigelse. Dette sikrer konsekvent transformation mellem trænings- og testdatasæt.
For eksempel, overvej et datasæt med en kategorisk variabel 'Color', der skal kodes før modeltræning:
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 forudsigelserne upålidelige.
Dog brugen af .transform() sikrer, 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
For at anvende den endelige estimator skal den blot tilføjes som sidste trin i pipelinen. For eksempel vil vi i næste kapitel bruge en KNeighborsClassifier-model som endelig estimator.
Syntaksen er som følger:
# 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)
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
Indtil nu er Pipeline hovedsageligt blevet brugt til forbehandling. Forbehandling er dog kun et mellemliggende trin. Når dataene er transformeret, sendes de typisk videre til en prediktor (model) for at generere resultater eller forudsigelser.
Pipeline-klassen understøtter dette ved at tillade, at estimatoren—ofte en prediktor—er det sidste trin. Illustrationen nedenfor viser, hvordan en Pipeline fungerer, når dens sidste komponent er en prediktor.
Når .fit()-metoden på en pipeline kaldes, udfører hver transformer .fit_transform(). Omvendt, når .predict() kaldes, anvender pipelinen .transform() på dataene, før de sendes videre til prediktoren.
Metoden .predict() bruges primært til nye instanser, som skal gennemgå de samme transformationer som træningsdataene under .fit().
Hvorfor .transform()?
Pipelinen anvender .transform() i stedet for .fit_transform() ved håndtering af nye datainstanser til forudsigelse. Dette sikrer konsekvent transformation mellem trænings- og testdatasæt.
For eksempel, overvej et datasæt med en kategorisk variabel 'Color', der skal kodes før modeltræning:
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 forudsigelserne upålidelige.
Dog brugen af .transform() sikrer, 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
For at anvende den endelige estimator skal den blot tilføjes som sidste trin i pipelinen. For eksempel vil vi i næste kapitel bruge en KNeighborsClassifier-model som endelig estimator.
Syntaksen er som følger:
# 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)
Tak for dine kommentarer!