Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Slutlig Estimator | Pipelines
ML-introduktion Med Scikit-learn

bookSlutlig Estimator

Hittills har Pipeline huvudsakligen använts för förbehandling. Förbehandling är dock endast ett mellanled. När data har transformerats skickas den vanligtvis vidare till en prediktor (modell) för att generera resultat eller förutsägelser.

Pipeline-klassen stödjer detta genom att tillåta att estimatorn—ofta en prediktor—är det sista steget. Illustrationen nedan visar hur en Pipeline fungerar när dess sista komponent är en prediktor.

Note
Notera

När .fit()-metoden för en pipeline anropas, utför varje transformerare .fit_transform(). Däremot, när .predict() anropas, tillämpar pipelinen .transform() på datan innan den skickas till prediktorn.

Metoden .predict() används huvudsakligen för nya instanser, vilka måste genomgå samma transformationer som träningsdatan under .fit().

Varför .transform()?

Pipelinen tillämpar .transform() istället för .fit_transform() när den hanterar nya datainstanser för prediktion. Detta säkerställer konsekvent transformation mellan tränings- och testmängder.

Till exempel, överväg en datamängd med en kategorisk variabel 'Color' som måste kodas innan modellträning:

Så här ser den one-hot kodade träningsdatan ut:

Här är de nya instanserna att förutsäga:

Om .fit_transform() skulle tillämpas på nya instanser kan OneHotEncoder generera kolumner i en annan ordning eller till och med introducera nya. Detta skulle göra att den nya datan transformeras inkonsekvent med träningsuppsättningen, vilket gör prediktionerna opålitliga.

Att använda .transform() säkerställer dock att den nya datan kodas exakt som träningsdatan, och ignorerar kategorier som inte sågs under träningen:

Lägga till den slutliga estimatoren

För att använda den slutliga estimatoren behöver du bara lägga till den som sista steget i pipelinen. Till exempel kommer vi i nästa kapitel att använda en KNeighborsClassifier-modell som slutlig estimator.

Syntaxen är följande:

# 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)
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 3.13

bookSlutlig Estimator

Svep för att visa menyn

Hittills har Pipeline huvudsakligen använts för förbehandling. Förbehandling är dock endast ett mellanled. När data har transformerats skickas den vanligtvis vidare till en prediktor (modell) för att generera resultat eller förutsägelser.

Pipeline-klassen stödjer detta genom att tillåta att estimatorn—ofta en prediktor—är det sista steget. Illustrationen nedan visar hur en Pipeline fungerar när dess sista komponent är en prediktor.

Note
Notera

När .fit()-metoden för en pipeline anropas, utför varje transformerare .fit_transform(). Däremot, när .predict() anropas, tillämpar pipelinen .transform() på datan innan den skickas till prediktorn.

Metoden .predict() används huvudsakligen för nya instanser, vilka måste genomgå samma transformationer som träningsdatan under .fit().

Varför .transform()?

Pipelinen tillämpar .transform() istället för .fit_transform() när den hanterar nya datainstanser för prediktion. Detta säkerställer konsekvent transformation mellan tränings- och testmängder.

Till exempel, överväg en datamängd med en kategorisk variabel 'Color' som måste kodas innan modellträning:

Så här ser den one-hot kodade träningsdatan ut:

Här är de nya instanserna att förutsäga:

Om .fit_transform() skulle tillämpas på nya instanser kan OneHotEncoder generera kolumner i en annan ordning eller till och med introducera nya. Detta skulle göra att den nya datan transformeras inkonsekvent med träningsuppsättningen, vilket gör prediktionerna opålitliga.

Att använda .transform() säkerställer dock att den nya datan kodas exakt som träningsdatan, och ignorerar kategorier som inte sågs under träningen:

Lägga till den slutliga estimatoren

För att använda den slutliga estimatoren behöver du bara lägga till den som sista steget i pipelinen. Till exempel kommer vi i nästa kapitel att använda en KNeighborsClassifier-modell som slutlig estimator.

Syntaxen är följande:

# 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)
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5
some-alt