Sluttestimator
Til nå har Pipeline hovedsakelig blitt brukt til forbehandling. Forbehandling er imidlertid bare et mellomtrinn. Når dataene er transformert, sendes de vanligvis videre til en prediktor (modell) for å produsere resultater eller prediksjoner.
Pipeline-klassen støtter dette ved å tillate at estimatoren—ofte en prediktor—er det siste steget. Illustrasjonen nedenfor viser hvordan en Pipeline fungerer når dens siste komponent er en prediktor.
Når .fit()-metoden til en pipeline kalles, utfører hver transformer .fit_transform(). Til sammenligning, når .predict() kalles, bruker pipelinen .transform() på dataene før de sendes til prediktoren.
Metoden .predict() brukes hovedsakelig for nye instanser, som må gjennomgå de samme transformasjonene som treningsdataene under .fit().
Hvorfor .transform()?
Pipelinen bruker .transform() i stedet for .fit_transform() når den håndterer nye datainstanser for prediksjon. Dette sikrer konsistent transformasjon mellom trenings- og testsett.
For eksempel, vurder et datasett med en kategorisk variabel 'Color' som må kodes før modelltrening:
Slik ser én-hot-kodede treningsdata ut:
Her er de nye instansene som skal predikeres:
Hvis .fit_transform() ble brukt på nye instanser, kunne OneHotEncoder generere kolonner i en annen rekkefølge eller til og med introdusere nye. Dette ville ført til at de nye dataene ble transformert inkonsistent med treningssettet, noe som gjør prediksjonene upålitelige.
Ved å bruke .transform() sikres det at de nye dataene kodes nøyaktig som treningsdataene, og kategorier som ikke ble sett under trening ignoreres:
Legge til den endelige estimatoren
For å bruke den endelige estimatoren, må den legges til som siste steg i pipelinen. For eksempel vil vi i neste kapittel bruke en KNeighborsClassifier-modell 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)
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.13
Sluttestimator
Sveip for å vise menyen
Til nå har Pipeline hovedsakelig blitt brukt til forbehandling. Forbehandling er imidlertid bare et mellomtrinn. Når dataene er transformert, sendes de vanligvis videre til en prediktor (modell) for å produsere resultater eller prediksjoner.
Pipeline-klassen støtter dette ved å tillate at estimatoren—ofte en prediktor—er det siste steget. Illustrasjonen nedenfor viser hvordan en Pipeline fungerer når dens siste komponent er en prediktor.
Når .fit()-metoden til en pipeline kalles, utfører hver transformer .fit_transform(). Til sammenligning, når .predict() kalles, bruker pipelinen .transform() på dataene før de sendes til prediktoren.
Metoden .predict() brukes hovedsakelig for nye instanser, som må gjennomgå de samme transformasjonene som treningsdataene under .fit().
Hvorfor .transform()?
Pipelinen bruker .transform() i stedet for .fit_transform() når den håndterer nye datainstanser for prediksjon. Dette sikrer konsistent transformasjon mellom trenings- og testsett.
For eksempel, vurder et datasett med en kategorisk variabel 'Color' som må kodes før modelltrening:
Slik ser én-hot-kodede treningsdata ut:
Her er de nye instansene som skal predikeres:
Hvis .fit_transform() ble brukt på nye instanser, kunne OneHotEncoder generere kolonner i en annen rekkefølge eller til og med introdusere nye. Dette ville ført til at de nye dataene ble transformert inkonsistent med treningssettet, noe som gjør prediksjonene upålitelige.
Ved å bruke .transform() sikres det at de nye dataene kodes nøyaktig som treningsdataene, og kategorier som ikke ble sett under trening ignoreres:
Legge til den endelige estimatoren
For å bruke den endelige estimatoren, må den legges til som siste steg i pipelinen. For eksempel vil vi i neste kapittel bruke en KNeighborsClassifier-modell 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)
Takk for tilbakemeldingene dine!