Lopullinen Estimaattori
Tähän asti Pipeline
-luokkaa on käytetty pääasiassa esikäsittelyyn. Esikäsittely on kuitenkin vain väliaskel. Kun data on muunnettu, se siirretään yleensä ennustajalle (mallille) tulosten tai ennusteiden tuottamiseksi.
Pipeline
-luokka tukee tätä sallimalla estimaattorin—usein ennustajan—olla viimeinen vaihe. Alla oleva kuva havainnollistaa, miten Pipeline
toimii, kun sen viimeinen komponentti on ennustaja.
Kun pipeline-olion .fit()
-metodia kutsutaan, jokainen muunnin suorittaa .fit_transform()
. Sen sijaan, kun kutsutaan .predict()
, pipeline käyttää .transform()
-metodia dataan ennen sen siirtämistä ennustajalle.
.predict()
-metodia käytetään pääasiassa uusille havaintoarvoille, jotka tulee käsitellä samoilla muunnoksilla kuin koulutusdatan yhteydessä .fit()
-vaiheessa.
Miksi .transform()
?
Pipeline käyttää .transform()
-metodia eikä .fit_transform()
-metodia käsitellessään uusia havaintoarvoja ennustamista varten. Tämä takaa yhtenäisen muunnoksen koulutus- ja testiaineistojen välillä.
Esimerkiksi, jos aineistossa on kategorinen ominaisuus 'Color'
, joka täytyy koodata ennen mallin koulutusta:
Tältä näyttää one-hot-koodattu opetusdata:
Tässä ovat uudet ennustettavat havainnot:
Jos .fit_transform()
sovellettaisiin uusiin havaintoihin, OneHotEncoder
voisi luoda sarakkeet eri järjestyksessä tai jopa lisätä uusia. Tämä johtaisi siihen, että uusi data muunnettaisiin epäjohdonmukaisesti opetusjoukon kanssa, mikä tekisi ennusteista epäluotettavia.
Kuitenkin käyttämällä .transform()
-metodia varmistetaan, että uusi data koodataan täsmälleen samalla tavalla kuin koulutusdata, eikä koulutuksessa näkymättömiä kategorioita huomioida:
Lopullisen estimaattorin lisääminen
Lopullisen estimaattorin käyttöön riittää, että lisäät sen putken viimeiseksi vaiheeksi. Esimerkiksi seuraavassa luvussa käytämme KNeighborsClassifier
-mallia lopullisena estimaattorina.
Syntaksi on seuraava:
# 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)
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain why using .fit_transform() on new data is problematic?
How does the pipeline handle unseen categories during prediction?
Can you give more examples of using a final estimator in a pipeline?
Awesome!
Completion rate improved to 3.13
Lopullinen Estimaattori
Pyyhkäise näyttääksesi valikon
Tähän asti Pipeline
-luokkaa on käytetty pääasiassa esikäsittelyyn. Esikäsittely on kuitenkin vain väliaskel. Kun data on muunnettu, se siirretään yleensä ennustajalle (mallille) tulosten tai ennusteiden tuottamiseksi.
Pipeline
-luokka tukee tätä sallimalla estimaattorin—usein ennustajan—olla viimeinen vaihe. Alla oleva kuva havainnollistaa, miten Pipeline
toimii, kun sen viimeinen komponentti on ennustaja.
Kun pipeline-olion .fit()
-metodia kutsutaan, jokainen muunnin suorittaa .fit_transform()
. Sen sijaan, kun kutsutaan .predict()
, pipeline käyttää .transform()
-metodia dataan ennen sen siirtämistä ennustajalle.
.predict()
-metodia käytetään pääasiassa uusille havaintoarvoille, jotka tulee käsitellä samoilla muunnoksilla kuin koulutusdatan yhteydessä .fit()
-vaiheessa.
Miksi .transform()
?
Pipeline käyttää .transform()
-metodia eikä .fit_transform()
-metodia käsitellessään uusia havaintoarvoja ennustamista varten. Tämä takaa yhtenäisen muunnoksen koulutus- ja testiaineistojen välillä.
Esimerkiksi, jos aineistossa on kategorinen ominaisuus 'Color'
, joka täytyy koodata ennen mallin koulutusta:
Tältä näyttää one-hot-koodattu opetusdata:
Tässä ovat uudet ennustettavat havainnot:
Jos .fit_transform()
sovellettaisiin uusiin havaintoihin, OneHotEncoder
voisi luoda sarakkeet eri järjestyksessä tai jopa lisätä uusia. Tämä johtaisi siihen, että uusi data muunnettaisiin epäjohdonmukaisesti opetusjoukon kanssa, mikä tekisi ennusteista epäluotettavia.
Kuitenkin käyttämällä .transform()
-metodia varmistetaan, että uusi data koodataan täsmälleen samalla tavalla kuin koulutusdata, eikä koulutuksessa näkymättömiä kategorioita huomioida:
Lopullisen estimaattorin lisääminen
Lopullisen estimaattorin käyttöön riittää, että lisäät sen putken viimeiseksi vaiheeksi. Esimerkiksi seuraavassa luvussa käytämme KNeighborsClassifier
-mallia lopullisena estimaattorina.
Syntaksi on seuraava:
# 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)
Kiitos palautteestasi!