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:n .fit()-metodia kutsutaan, jokainen muunnin suorittaa .fit_transform(). Vastaavasti, kun .predict()-metodia kutsutaan, pipeline käyttää .transform()-metodia dataan ennen kuin se siirretään ennustajalle.
.predict()-metodia käytetään pääasiassa uusiin havaintoihin, 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 datahavaintoja 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 koulutusdata:
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 eri tavalla kuin koulutusdata, 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:n .fit()-metodia kutsutaan, jokainen muunnin suorittaa .fit_transform(). Vastaavasti, kun .predict()-metodia kutsutaan, pipeline käyttää .transform()-metodia dataan ennen kuin se siirretään ennustajalle.
.predict()-metodia käytetään pääasiassa uusiin havaintoihin, 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 datahavaintoja 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 koulutusdata:
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 eri tavalla kuin koulutusdata, 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!