Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Sluttestimator | Seksjon
Practice
Projects
Quizzes & Challenges
Quizer
Challenges
/
Grunnleggende Maskinlæring

bookSluttestimator

Pipeline ble tidligere brukt til forbehandling, men dens egentlige formål er å kjede forbehandling sammen med en sluttprediktor. Det siste steget i en pipeline kan være hvilken som helst estimator (vanligvis en modell) som produserer prediksjoner.

Note
Merk

Når man kaller .fit(), kjører hver transformer .fit_transform(). Når man kaller .predict(), bruker pipelinen .transform() før data sendes til sluttestimatoren. Dette er nødvendig fordi nye data må transformeres på nøyaktig samme måte som treningsdataene.

Hvorfor .transform()?

Å bruke .fit_transform() på nye data kan endre kodinger (for eksempel i OneHotEncoder), noe som kan føre til feil kolonner og upålitelige prediksjoner. .transform() garanterer konsistent forbehandling, ignorerer ukjente kategorier og beholder samme kolonnerekkefølge.

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

Legg ganske enkelt til modellen som det siste steget i pipelinen:

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

Dette gjør at hele arbeidsflyten—preprosessering + prediksjon—kan kjøres med ett kall.

question mark

Hvilke påstander om den endelige estimatoren og preprosessering i en pipeline er korrekte?

Select all correct answers

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 21

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

bookSluttestimator

Sveip for å vise menyen

Pipeline ble tidligere brukt til forbehandling, men dens egentlige formål er å kjede forbehandling sammen med en sluttprediktor. Det siste steget i en pipeline kan være hvilken som helst estimator (vanligvis en modell) som produserer prediksjoner.

Note
Merk

Når man kaller .fit(), kjører hver transformer .fit_transform(). Når man kaller .predict(), bruker pipelinen .transform() før data sendes til sluttestimatoren. Dette er nødvendig fordi nye data må transformeres på nøyaktig samme måte som treningsdataene.

Hvorfor .transform()?

Å bruke .fit_transform() på nye data kan endre kodinger (for eksempel i OneHotEncoder), noe som kan føre til feil kolonner og upålitelige prediksjoner. .transform() garanterer konsistent forbehandling, ignorerer ukjente kategorier og beholder samme kolonnerekkefølge.

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

Legg ganske enkelt til modellen som det siste steget i pipelinen:

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

Dette gjør at hele arbeidsflyten—preprosessering + prediksjon—kan kjøres med ett kall.

question mark

Hvilke påstander om den endelige estimatoren og preprosessering i en pipeline er korrekte?

Select all correct answers

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 21
some-alt