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(). Sen sijaan, kun kutsutaan .predict(), pipeline käyttää .transform()-metodia dataan ennen kuin se siirretään ennustajalle.
.predict()-metodia käytetään pääasiassa uusille havaintoarvoille, jotka täytyy 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', se 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() varmistetaan, että uusi data koodataan täsmälleen samalla tavalla kuin koulutusdata, eikä huomioida koulutuksessa näkymättömiä kategorioita:
Lopullisen estimaattorin lisääminen
Lopullisen estimaattorin käyttö edellyttää sen lisäämistä putken viimeiseksi vaiheeksi. Esimerkiksi seuraavassa luvussa käytetään 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(). Sen sijaan, kun kutsutaan .predict(), pipeline käyttää .transform()-metodia dataan ennen kuin se siirretään ennustajalle.
.predict()-metodia käytetään pääasiassa uusille havaintoarvoille, jotka täytyy 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', se 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() varmistetaan, että uusi data koodataan täsmälleen samalla tavalla kuin koulutusdata, eikä huomioida koulutuksessa näkymättömiä kategorioita:
Lopullisen estimaattorin lisääminen
Lopullisen estimaattorin käyttö edellyttää sen lisäämistä putken viimeiseksi vaiheeksi. Esimerkiksi seuraavassa luvussa käytetään 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!