0Pricing
Learn AI with Python · Урок

Создание конвейеров предварительной обработки

sklearn Pipeline, ColumnTransformer и объединение преобразователей в понятные рабочие процессы предварительной обработки.

«Создание конвейеров предварительной обработки» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.

Зачем нужны конвейеры?

Конвейер scikit-learn объединяет шаги предобработки и модель в один объект. Он гарантирует применение одинаковых преобразований к обучающим и тестовым данным, предотвращая утечку и появление неаккуратного кода.

Базовый конвейер

Pipeline принимает список кортежей (имя, этап). Вызов fit выполняет каждый этап по порядку; последним этапом обычно является оцениватель.

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

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

Обучение и прогнозирование с помощью всего конвейера

Рассматривайте конвейер как единую модель. fit изучает параметры масштабирования AND обучает модель; predict применяет масштабирование, а затем модель — автоматически и единообразно.

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

Отсутствие утечки благодаря конструкции

Поскольку конвейер подбирает параметры масштабирования только во время fit (на обучающих данных), а во время predict лишь выполняет преобразование, он автоматически устраняет ошибку настройки на тестовых данных.

Смешанные типы столбцов

Реальные наборы данных содержат столбцы NUMERIC и CATEGORICAL, требующие разной предварительной обработки. ColumnTransformer применяет отдельный преобразователь к каждому подмножеству столбцов.

ColumnTransformer

Передайте кортежи (имя, преобразователь, столбцы). Числовые столбцы масштабируются, категориальные кодируются индикаторными столбцами — всё за один этап.

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

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

Вложение в полный конвейер

Поместите ColumnTransformer первым этапом конвейера, а следующим этапом добавьте модель, чтобы получить полный рабочий процесс без утечек.

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

Обработка пропусков на одном из этапов

Добавьте SimpleImputer в числовую ветвь (часто это ещё один небольшой конвейер), чтобы заполнить пропуски перед масштабированием и сохранить все операции внутри конвейера.

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

fit_transform на обучающих данных, transform на тестовых

То же золотое правило применяется ко всему конвейеру: во время fit он изучает все параметры по обучающим данным, а затем только преобразует тестовые данные во время predict или transform.

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

Сохранение конвейера

Сохраните весь настроенный конвейер — предобработку вместе с моделью — на диске с помощью joblib. При последующей загрузке он применит в рабочей среде те же преобразования, без необходимости вручную воспроизводить отдельные шаги.

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

Почему это важно в рабочей среде

Сохранённый конвейер означает, что развёрнутая модель обрабатывает поступающие данные EXACTLY так же, как во время обучения. Такая согласованность — главная защита от ошибок расхождения между обучением и применением модели.

Быстрая проверка

Проверьте свои знания о конвейерах.

Итоги

Инструменты конвейеров:

  • Pipeline объединяет предобработку и модель в один объект с операциями fit/predict
  • Без утечки: параметры изучаются при fit и применяются при predict
  • ColumnTransformer обрабатывает смешанные числовые и категориальные столбцы
  • SimpleImputer заполняет пропуски внутри конвейера
  • Сохраняйте конвейер с помощью joblib, чтобы обеспечить согласованную предобработку в рабочей среде

Часто задаваемые вопросы

Урок «Создание конвейеров предварительной обработки» бесплатный?

Да — полный текст урока «Создание конвейеров предварительной обработки» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.

Чему я научусь в уроке «Создание конвейеров предварительной обработки»?

sklearn Pipeline, ColumnTransformer и объединение преобразователей в понятные рабочие процессы предварительной обработки. Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Создание конвейеров предварительной обработки»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Обнаружение и удаление выбросов
  2. Кодирование категориальных переменных
  3. Масштабирование признаков: нормализация и стандартизация
  4. Создание конвейеров предварительной обработки
← Назад к Learn AI with Python