Oppikaa tekoälyä Pythonilla · Oppitunti

Esikäsittelyputkien rakentaminen

sklearn Pipeline, ColumnTransformer ja muuntajien yhdistäminen selkeiksi esikäsittelytyönkuluiksi.

Oppitunti 4/413 vaihetta

Esikäsittelyputkien rakentaminen on ilmainen Oppikaa tekoälyä Pythonilla-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Oppikaa tekoälyä Pythonilla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.

Miksi putkia käytetään?

scikit-learnin Pipeline yhdistää esikäsittelyvaiheet ja mallin yhdeksi objektiksi. Se varmistaa, että samat muunnokset tehdään harjoitus- ja testidatalle, mikä estää tietovuodot ja sekavan koodin.

Perusputki

Pipeline ottaa luettelon (nimi, vaihe) -pareja. Kun kutsutte fit-komentoa, jokainen vaihe suoritetaan järjestyksessä; viimeinen vaihe on yleensä estimaattori.

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

pipe = Pipeline([
    ("scale", StandardScaler()),
    ("model", LogisticRegression()),
])

fit ja predict koko Pipelinen läpi

Käsitelkää putkea yhtenä mallina. fit oppii skaalaimen parametrit JA kouluttaa mallin; predict käyttää skaalainta ja sen jälkeen mallia automaattisesti ja yhdenmukaisesti.

pipe.fit(X_train, y_train)
preds = pipe.predict(X_test)   # scaling applied automatically

Ei tietovuotoja rakenteen ansiosta

Koska putki sovittaa skaalaimen vain fit-komennon aikana (harjoitusdataan) ja tekee ennustamisen aikana ainoastaan muunnoksen, se poistaa automaattisesti testidataan sovittamisen virheen.

Erityyppiset sarakkeet

Todellisissa aineistoissa on sekä NUMEERISIA että KATEGORISIA sarakkeita, jotka tarvitsevat erilaisen esikäsittelyn. ColumnTransformer käyttää eri muunnosta kullekin sarakejoukolle.

ColumnTransformer

Antakaa määritteet muodossa (name, transformer, columns). Numeeriset sarakkeet skaalataan ja kategoriset sarakkeet one-hot-koodataan kaikki yhdessä vaiheessa.

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder

pre = ColumnTransformer([
    ("num", StandardScaler(), ["age", "income"]),
    ("cat", OneHotEncoder(handle_unknown="ignore"), ["city"]),
])

Sisäkkäisyys kokonaisessa putkessa

Sijoittakaa ColumnTransformer Pipelinen ensimmäiseksi vaiheeksi ja lisätkää sen jälkeen malli, jotta saatte täydellisen ja tietovuodottoman työnkulun.

full = Pipeline([
    ("prep", pre),
    ("model", LogisticRegression()),
])
full.fit(X_train, y_train)

Puuttuvien arvojen käsittely vaiheessa

Lisätkää SimpleImputer numeeriseen haaraan, usein itse pieneen putkeen, täyttämään puuttuvat arvot ennen skaalausta. Näin kaikki pysyy putken sisällä.

from sklearn.impute import SimpleImputer
num_pipe = Pipeline([
    ("impute", SimpleImputer(strategy="median")),
    ("scale", StandardScaler()),
])

fit_transform harjoitusdatalla, transform testidatalla

Sama kultainen sääntö koskee koko putkea: se oppii kaikki parametrit harjoitusdatasta fit-komennon aikana ja tekee testidatalle vain muunnoksen predict- tai transform-komennon aikana.

full.fit(X_train, y_train)        # learns imputer, scaler, encoder, model
full.predict(X_test)              # transform-only path

Pipelinen tallentaminen

Tallentakaa koko sovitettu Pipeline, esikäsittely ja malli, levylle joblib-kirjastolla. Kun lataatte sen myöhemmin, tuotannossa käytetään samaa esikäsittelyä ilman manuaalisesti toistettavia vaiheita.

import joblib
joblib.dump(full, "model.joblib")
loaded = joblib.load("model.joblib")
loaded.predict(X_new)   # same preprocessing guaranteed

Miksi tällä on merkitystä tuotannossa?

Tallennettu Pipeline tarkoittaa, että tuotantoon viety malli esikäsittelee saapuvan datan TÄSMÄLLEEN samalla tavalla kuin koulutuksen aikana. Tämä yhdenmukaisuus on tärkein suoja koulutus- ja palveluympäristön välisten eroavaisuuksien aiheuttamia virheitä vastaan.

Pikatesti

Testatkaa putkia koskevat tietonne.

Kertaus

Putkien työkalut:

  • Pipeline yhdistää esikäsittelyn ja mallin yhdeksi fit/predict-objektiksi
  • Ei tietovuotoja: parametrit opitaan fit-komennolla ja niitä käytetään predict-komennolla
  • ColumnTransformer käsittelee numeeristen ja kategoristen sarakkeiden yhdistelmiä
  • SimpleImputer käsittelee puuttuvat arvot putken sisällä
  • Tallentakaa Pipeline joblib-kirjastolla, jotta tuotannon esikäsittely pysyy yhdenmukaisena
Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
53
Oppitunnit
225

Usein kysytyt kysymykset

Onko oppitunti ”Esikäsittelyputkien rakentaminen” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Oppikaa tekoälyä Pythonilla-oppimispolun 3 oppituntia, myös oppitunnin “Esikäsittelyputkien rakentaminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Esikäsittelyputkien rakentaminen”?

sklearn Pipeline, ColumnTransformer ja muuntajien yhdistäminen selkeiksi esikäsittelytyönkuluiksi. Harjoittelet Oppikaa tekoälyä Pythonilla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Oppikaa tekoälyä Pythonilla-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Oppikaa tekoälyä Pythonilla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Esikäsittelyputkien rakentaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Oppikaa tekoälyä Pythonilla-oppitunnilla?

Kyllä. Jokainen Oppikaa tekoälyä Pythonilla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Poikkeamien tunnistus ja poistaminen
  2. Kategoristen muuttujien koodaus
  3. Piirteiden skaalaus: normalisointi ja standardointi
  4. Esikäsittelyputkien rakentaminen
← Takaisin: Oppikaa tekoälyä Pythonilla