0Pricing
Learn AI with Python · Lekcja

Budowanie potoków przetwarzania wstępnego

sklearn Pipeline, ColumnTransformer i łączenie transformerów w przejrzyste przepływy wstępnego przetwarzania.

Budowanie potoków przetwarzania wstępnego to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Dlaczego używać potoków?

Obiekt Pipeline biblioteki scikit-learn łączy kroki wstępnego przetwarzania i model w jeden obiekt. Gwarantuje, że te same transformacje zostaną zastosowane do danych treningowych i testowych, zapobiegając wyciekowi danych oraz powstawaniu nieuporządkowanego kodu.

Podstawowy potok

Pipeline przyjmuje listę krotek (name, step). Wywołanie fit uruchamia każdy krok po kolei; ostatnim krokiem jest zwykle estymator.

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

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

fit i predict dla całego potoku

Potok należy traktować jak pojedynczy model. fit uczy skaler i trenuje model, a predict stosuje skaler, a następnie model, automatycznie i w spójny sposób.

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

Brak wycieku dzięki konstrukcji

Ponieważ potok dopasowuje skaler wyłącznie podczas fit (na danych treningowych), a podczas predict jedynie wykonuje transformację, automatycznie eliminuje błąd polegający na dopasowaniu do danych testowych.

Mieszane typy kolumn

Rzeczywiste zbiory danych zawierają jednocześnie kolumny NUMERYCZNE i KATEGORYCZNE, które wymagają różnego wstępnego przetwarzania. ColumnTransformer stosuje inny transformator do każdego podzbioru kolumn.

ColumnTransformer

Należy przekazać krotki (name, transformer, columns). Kolumny numeryczne są skalowane, a kategorie kodowane one-hot — wszystko w jednym kroku.

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

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

Zagnieżdżanie w pełnym potoku

Należy umieścić ColumnTransformer jako pierwszy krok obiektu Pipeline, a następnie dodać model, aby uzyskać kompletny proces pracy bez wycieku danych.

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

Obsługa brakujących wartości w jednym kroku

Należy dodać SimpleImputer do gałęzi numerycznej (często będącej osobnym małym potokiem), aby uzupełniać brakujące wartości przed skalowaniem i zachować wszystkie operacje wewnątrz potoku.

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

fit_transform na danych treningowych, transform na testowych

Ta sama złota zasada dotyczy całego potoku: podczas fit uczy się on wszystkich parametrów na podstawie danych treningowych, a następnie podczas predict lub transform wykonuje transformację danych testowych.

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

Zapisywanie potoku

Cały dopasowany potok — wstępne przetwarzanie wraz z modelem — można zapisać na dysku za pomocą joblib. Późniejsze wczytanie potoku zastosuje identyczne wstępne przetwarzanie w środowisku produkcyjnym, bez konieczności ręcznego odtwarzania poszczególnych kroków.

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

Dlaczego ma to znaczenie w środowisku produkcyjnym?

Zapisany potok oznacza, że wdrożony model przetwarza dane przychodzące DOKŁADNIE tak samo jak podczas treningu. Ta spójność jest najważniejszą ochroną przed błędami wynikającymi z rozbieżności między treningiem a obsługą modelu.

Szybki test

Sprawdź swoją wiedzę na temat potoków.

Podsumowanie

Narzędzia do tworzenia potoków:

  • Pipeline łączy wstępne przetwarzanie i model w jeden obiekt obsługujący fit/predict
  • Brak wycieku: parametry są uczone podczas fit i stosowane podczas predict
  • ColumnTransformer obsługuje mieszane kolumny numeryczne i kategoryczne
  • SimpleImputer służy do obsługi brakujących wartości wewnątrz potoku
  • Potok można zapisać za pomocą joblib, aby zapewnić spójne wstępne przetwarzanie w środowisku produkcyjnym

Często zadawane pytania

Czy lekcja „Budowanie potoków przetwarzania wstępnego” jest bezpłatna?

Tak — pełny tekst „Budowanie potoków przetwarzania wstępnego” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „Budowanie potoków przetwarzania wstępnego”?

sklearn Pipeline, ColumnTransformer i łączenie transformerów w przejrzyste przepływy wstępnego przetwarzania. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Budowanie potoków przetwarzania wstępnego”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Wykrywanie i usuwanie wartości odstających
  2. Kodowanie zmiennych kategorialnych
  3. Skalowanie cech: normalizacja i standaryzacja
  4. Budowanie potoków przetwarzania wstępnego
← Powrót do Learn AI with Python