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 automaticallyBrak 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 pathZapisywanie 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 guaranteedDlaczego 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
fiti stosowane podczaspredict ColumnTransformerobsługuje mieszane kolumny numeryczne i kategoryczneSimpleImputersł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
- Wykrywanie i usuwanie wartości odstających
- Kodowanie zmiennych kategorialnych
- Skalowanie cech: normalizacja i standaryzacja
- Budowanie potoków przetwarzania wstępnego