Slutlig 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.
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)
Tack för dina kommentarer!
Fråga AI
Fråga AI
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
Slutlig 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.
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)
Tack för dina kommentarer!