Spec-Zone.ru › scikit-learn

Конвейер

classsklearn.pipeline.Pipeline(steps, *, transform_input=None, memory=None, verbose=False)[источник]

Последовательность преобразователей данных с необязательным конечным предиктором.

Pipeline позволяет последовательно применить список преобразователей для предварительной обработки данных и, при желании, завершить последовательность конечным предиктором для прогнозного моделирования.

Промежуточные шаги конвейера должны быть преобразователями, то есть реализовывать методы fit и transform. Конечному оценщику необходимо реализовать только fit. Преобразователи в конвейере можно кэшировать с помощью аргумента memory.

Назначение конвейера — объединить несколько шагов, которые можно совместно проверять перекрёстной проверкой, задавая различные параметры. Для этого параметры отдельных шагов можно задавать с помощью их имён и имени параметра, разделённых '__', как показано в примере ниже. Оценщик шага можно полностью заменить, задав параметру с его именем другой оценщик, а преобразователь — удалить, задав для него 'passthrough' или None.

Пример использования Pipeline вместе с GridSearchCV см. в разделе Выбор метода снижения размерности с помощью Pipeline и GridSearchCV. В примере Конвейерная обработка: объединение PCA и логистической регрессии показано, как выполнять поиск по сетке для конвейера, используя '__' в качестве разделителя в именах параметров.

Подробнее см. в Руководстве пользователя.

Добавлено в версии 0.5.

Параметры:
stepslist of tuples

Список кортежей (имя шага, оценщик), которые будут объединены в последовательном порядке. Для совместимости с API scikit-learn все шаги должны определять fit. Все шаги, кроме последнего, также должны определять transform. Подробнее см. раздел Объединение оценщиков.

transform_inputlist of str, default=None

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

Это позволяет преобразовывать некоторые входные аргументы fit (кроме X) шагами конвейера вплоть до шага, которому они нужны. Требование задаётся с помощью маршрутизации метаданных. Например, так можно передать набор для валидации через конвейер.

Этот параметр можно задать, только если включена маршрутизация метаданных. Её можно включить с помощью sklearn.set_config(enable_metadata_routing=True).

Добавлено в версии 1.6.

memorystr or object with the joblib.Memory interface, default=None

Используется для кэширования обученных преобразователей конвейера. Последний шаг никогда не кэшируется, даже если он является преобразователем. По умолчанию кэширование не выполняется. Если задана строка, она указывает путь к каталогу кэширования. Включение кэширования приводит к созданию копий преобразователей перед обучением. Поэтому экземпляр преобразователя, переданный конвейеру, нельзя проверить напрямую. Используйте атрибут named_steps или steps, чтобы проверить оценщики в конвейере. Кэширование преобразователей полезно, если обучение занимает много времени. Пример включения кэширования см. в разделе Кэширование ближайших соседей.

verbosebool, default=False

Если значение True, по завершении обучения каждого шага выводится затраченное время.

Атрибуты:
named_stepsBunch

Доступ к шагам по имени.

classes_ndarray of shape (n_classes,)

Метки классов.

n_features_in_int

Количество признаков, обнаруженных при выполнении метода fit первого шага.

feature_names_in_ndarray of shape (n_features_in_,)

Имена признаков, обнаруженных при выполнении метода fit первого шага.

См. также

make_pipeline

Вспомогательная функция для упрощённого создания конвейера.

Примеры

>>> from sklearn.svm import SVC
>>> from sklearn.preprocessing import StandardScaler
>>> from sklearn.datasets import make_classification
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.pipeline import Pipeline
>>> X, y = make_classification(random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(X, y,
...                                                     random_state=0)
>>> pipe = Pipeline([('scaler', StandardScaler()), ('svc', SVC())])
>>> # The pipeline can be used as any other estimator
>>> # and avoids leaking the test set into the train set
>>> pipe.fit(X_train, y_train).score(X_test, y_test)
0.88
>>> # An estimator's parameter can be set using '__' syntax
>>> pipe.set_params(svc__C=10).fit(X_train, y_train).score(X_test, y_test)
0.76
decision_function(X, **params)[исходный код]

Преобразовать данные и применить decision_function с помощью конечного оценщика.

Вызвать transform каждого преобразователя в конвейере. В конце преобразованные данные передаются конечному оценщику, который вызывает метод decision_function. Допустимо только в том случае, если конечный оценщик реализует decision_function.

Параметры:
Xiterable

Данные, для которых нужно выполнить прогнозирование. Должны соответствовать требованиям к входным данным первого шага конвейера.

**paramsdict of string -> object

Параметры, запрошенные и принимаемые шагами. Каждый шаг должен запросить определённые метаданные, чтобы эти параметры были ему переданы.

Добавлено в версии 1.4: Доступно, только если включена enable_metadata_routing=True. Подробнее см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
y_scorendarray of shape (n_samples, n_classes)

Результат вызова decision_function конечного оценщика.

fit(X, y=None, **params)[исходный код]

Обучить модель.

Последовательно обучить все преобразователи один за другим и преобразовать данные. Затем обучить конечный оценщик на преобразованных данных.

Параметры:
Xiterable

Обучающие данные. Должны соответствовать требованиям к входным данным первого шага конвейера.

yiterable, default=None

Целевые значения для обучения. Должны соответствовать требованиям к меткам всех шагов конвейера.

**paramsdict of str -> object
  • Если enable_metadata_routing=False (по умолчанию): параметры передаются методу fit каждого шага; перед именем каждого параметра добавляется префикс, поэтому параметр p для шага s получает ключ s__p.
  • Если enable_metadata_routing=True: параметры, запрошенные и принимаемые шагами. Каждый шаг должен запросить определённые метаданные, чтобы эти параметры были ему переданы.

Изменено в версии 1.4: Параметры теперь также передаются методу transform промежуточных шагов, если они запрошены и если enable_metadata_routing=True задано с помощью set_config.

Подробнее см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
selfobject

Конвейер с обученными шагами.

fit_predict(X, y=None, **params)[исходный код]

Преобразовать данные и применить fit_predict с помощью конечного оценщика.

Вызвать fit_transform каждого преобразователя в конвейере. В конце преобразованные данные передаются конечному оценщику, который вызывает метод fit_predict. Допустимо только в том случае, если конечный оценщик реализует fit_predict.

Параметры:
Xiterable

Обучающие данные. Должны соответствовать требованиям к входным данным первого шага конвейера.

yiterable, default=None

Целевые значения для обучения. Должны соответствовать требованиям к меткам всех шагов конвейера.

**paramsdict of str -> object
  • Если enable_metadata_routing=False (по умолчанию): параметры для predict, вызываемого после завершения всех преобразований в конвейере.
  • Если enable_metadata_routing=True: параметры, запрошенные и принимаемые шагами. Каждый шаг должен запросить определённые метаданные, чтобы эти параметры были ему переданы.

Добавлено в версии 0.20.

Изменено в версии 1.4: Параметры теперь также передаются методу transform промежуточных шагов, если они запрошены и если выполнено условие enable_metadata_routing=True.

Подробнее см. в руководстве пользователя по маршрутизации метаданных.

Обратите внимание: этот метод можно использовать для возврата оценок неопределённости некоторых моделей с помощью return_std или return_cov, однако неопределённость, возникающая при преобразованиях в конвейере, не передаётся конечному оценщику.

Возвращает:
y_predndarray

Результат вызова fit_predict конечного оценщика.

fit_transform(X, y=None, **params)[исходный код]

Обучить модель и выполнить преобразование с помощью конечного оценщика.

Последовательно обучить все преобразователи один за другим и преобразовать данные. Допустимо только в том случае, если конечный оценщик реализует либо fit_transform, либо fit и transform.

Параметры:
Xiterable

Обучающие данные. Должны соответствовать требованиям к входным данным первого шага конвейера.

yiterable, default=None

Целевые значения для обучения. Должны соответствовать требованиям к меткам всех шагов конвейера.

**paramsdict of str -> object
  • Если enable_metadata_routing=False (по умолчанию): параметры передаются методу fit каждого шага; перед именем каждого параметра добавляется префикс, поэтому параметр p для шага s получает ключ s__p.
  • Если enable_metadata_routing=True: параметры, запрошенные и принимаемые шагами. Каждый шаг должен запросить определённые метаданные, чтобы эти параметры были ему переданы.

Изменено в версии 1.4: Параметры теперь также передаются методу transform промежуточных шагов, если они запрошены и если выполнено условие enable_metadata_routing=True.

Подробнее см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
Xtndarray of shape (n_samples, n_transformed_features)

Преобразованные образцы.

get_feature_names_out(input_features=None)[исходный код]

Получить имена признаков на выходе преобразования.

Преобразовать входные признаки с помощью конвейера.

Параметры:
input_featuresarray-like of str or None, default=None

Входные признаки.

Возвращает:
feature_names_outndarray of str objects

Имена преобразованных признаков.

get_metadata_routing()[исходный код]

Получить настройки маршрутизации метаданных этого объекта.

Описание работы механизма маршрутизации см. в руководстве пользователя.

Возвращает:
routingMetadataRouter

Объект MetadataRouter, содержащий сведения о маршрутизации.

get_params(deep=True)[исходный код]

Получить параметры этого оценщика.

Возвращает параметры, заданные в конструкторе, а также оценщики, содержащиеся в steps объекта Pipeline.

Параметры:
deepbool, default=True

Если значение True, будут возвращены параметры этого оценщика и содержащихся в нём объектов, которые являются оценщиками.

Возвращает:
paramsmapping of string to any

Имена параметров, сопоставленные с их значениями.

inverse_transform(X, **params)[исходный код]

Применить inverse_transform для каждого шага в обратном порядке.

Все оценщики в конвейере должны поддерживать inverse_transform.

Параметры:
Xarray-like of shape (n_samples, n_transformed_features)

Образцы данных, где n_samples — количество образцов, а n_features — количество признаков. Должны соответствовать требованиям к входным данным метода inverse_transform последнего шага конвейера.

**paramsdict of str -> object

Параметры, запрошенные и принимаемые шагами. Каждый шаг должен запросить определённые метаданные, чтобы эти параметры были ему переданы.

Добавлено в версии 1.4: Доступно, только если включена enable_metadata_routing=True. Подробнее см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
X_originalndarray of shape (n_samples, n_features)

Данные после обратного преобразования, то есть данные в исходном пространстве признаков.

propertynamed_steps

Доступ к шагам по имени.

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

predict(X, **params)[исходный код]

Преобразовать данные и применить predict с помощью конечного оценщика.

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

Параметры:
Xiterable

Данные, для которых нужно выполнить прогнозирование. Должны соответствовать требованиям к входным данным первого шага конвейера.

**paramsdict of str -> object
  • Если enable_metadata_routing=False (по умолчанию): параметры для predict, вызываемого после завершения всех преобразований в конвейере.
  • Если enable_metadata_routing=True: параметры, запрошенные и принимаемые шагами. Каждый шаг должен запросить определённые метаданные, чтобы эти параметры были ему переданы.

Добавлено в версии 0.20.

Изменено в версии 1.4: Параметры теперь также передаются методу transform промежуточных шагов, если они запрошены и если enable_metadata_routing=True задано с помощью set_config.

Подробнее см. в руководстве пользователя по маршрутизации метаданных.

Обратите внимание: этот метод можно использовать для возврата оценок неопределённости некоторых моделей с помощью return_std или return_cov, однако неопределённость, возникающая при преобразованиях в конвейере, не передаётся конечному оценщику.

Возвращает:
y_predndarray

Результат вызова predict конечного оценщика.

predict_log_proba(X, **params)[исходный код]

Преобразовать данные и применить predict_log_proba с помощью конечного оценщика.

Вызвать transform каждого преобразователя в конвейере. В конце преобразованные данные передаются конечному оценщику, который вызывает метод predict_log_proba. Допустимо только в том случае, если конечный оценщик реализует predict_log_proba.

Параметры:
Xiterable

Данные, для которых нужно выполнить прогнозирование. Должны соответствовать требованиям к входным данным первого шага конвейера.

**paramsdict of str -> object
  • Если enable_metadata_routing=False (по умолчанию): параметры для predict_log_proba, вызываемого после завершения всех преобразований в конвейере.
  • Если enable_metadata_routing=True: параметры, запрошенные и принимаемые шагами. Каждый шаг должен запросить определённые метаданные, чтобы эти параметры были ему переданы.

Добавлено в версии 0.20.

Изменено в версии 1.4: Параметры теперь также передаются методу transform промежуточных шагов, если они запрошены и если выполнено условие enable_metadata_routing=True.

Подробнее см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
y_log_probandarray of shape (n_samples, n_classes)

Результат вызова predict_log_proba конечного оценщика.

predict_proba(X, **params)[исходный код]

Преобразовать данные и применить predict_proba с помощью конечного оценщика.

Вызвать transform каждого преобразователя в конвейере. В конце преобразованные данные передаются конечному оценщику, который вызывает метод predict_proba. Допустимо только в том случае, если конечный оценщик реализует predict_proba.

Параметры:
Xiterable

Данные, для которых нужно выполнить прогнозирование. Должны соответствовать требованиям к входным данным первого шага конвейера.

**paramsdict of str -> object
  • Если enable_metadata_routing=False (по умолчанию): параметры для predict_proba, вызываемого после завершения всех преобразований в конвейере.
  • Если enable_metadata_routing=True: параметры, запрошенные и принимаемые шагами. Каждый шаг должен запросить определённые метаданные, чтобы эти параметры были ему переданы.

Добавлено в версии 0.20.

Изменено в версии 1.4: Параметры теперь также передаются методу transform промежуточных шагов, если они запрошены и если выполнено условие enable_metadata_routing=True.

Подробнее см. в руководстве пользователя по маршрутизации метаданных.

Возвращает:
y_probandarray of shape (n_samples, n_classes)

Результат вызова predict_proba конечного оценщика.

score(X, y=None, sample_weight=None, **params)[исходный код]

Преобразовать данные и вычислить score с помощью конечного оценщика.

Вызвать transform каждого преобразователя в конвейере. Затем преобразованные данные передаются конечному оценщику, который вызывает метод score. Допустимо, только если конечный оценщик реализует score.

Параметры:
Xитерируемый объект

Данные для прогнозирования. Должны соответствовать требованиям к входным данным первого шага конвейера.

yитерируемый объект, по умолчанию=None

Целевые значения для оценки. Должны соответствовать требованиям к меткам всех шагов конвейера.

sample_weightмассивоподобный объект, по умолчанию=None

Если аргумент не равен None, он передаётся как именованный аргумент sample_weight методу score конечного оценщика.

**paramsсловарь str -> object

Параметры, запрошенные и принимаемые шагами. Каждый шаг должен запросить определённые метаданные, чтобы эти параметры были ему переданы.

Добавлено в версии 1.4: Доступно, только если enable_metadata_routing=True. Подробнее см. в Руководстве пользователя по маршрутизации метаданных.

Возвращает:
scoreчисло с плавающей точкой

Результат вызова score конечного оценщика.

score_samples(X)[исходный код]

Преобразовать данные и вычислить score_samples с помощью конечного оценщика.

Вызвать transform каждого преобразователя в конвейере. Затем преобразованные данные передаются конечному оценщику, который вызывает метод score_samples. Допустимо, только если конечный оценщик реализует score_samples.

Параметры:
Xитерируемый объект

Данные для прогнозирования. Должны соответствовать требованиям к входным данным первого шага конвейера.

Возвращает:
y_scorendarray формы (n_samples,)

Результат вызова score_samples конечного оценщика.

set_callbacks(*callbacks)[исходный код]

Задать функции обратного вызова для оценщика.

Параметры:
*callbacksэкземпляры функций обратного вызова

Функции обратного вызова, которые нужно задать.

Возвращает:
selfэкземпляр оценщика

Сам экземпляр оценщика.

set_output(*, transform=None)[исходный код]

Задать контейнер выходных данных, используемый при вызове "transform" и "fit_transform".

Вызов set_output задаст формат выходных данных для всех оценщиков в steps.

Параметры:
transform{“default”, “pandas”, “polars”}, по умолчанию=None

Настроить формат выходных данных transform и fit_transform.

  • "default": формат выходных данных преобразователя по умолчанию
  • "pandas": выходные данные в формате DataFrame
  • "polars": выходные данные в формате Polars
  • None: конфигурация преобразования не изменяется

Добавлено в версии 1.4: Добавлен параметр "polars".

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

set_params(**kwargs)[исходный код]

Задать параметры этого оценщика.

Допустимые ключи параметров можно получить с помощью get_params(). Обратите внимание, что можно напрямую задавать параметры оценщиков, содержащихся в steps.

Параметры:
**kwargsсловарь

Параметры этого оценщика или параметры оценщиков, содержащихся в steps. Параметры шагов можно задать, указав его имя и имя параметра, разделённые символами ‘__’.

Возвращает:
selfобъект

Экземпляр класса Pipeline.

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → Pipeline[исходный код]

Настроить, следует ли запрашивать передачу метаданных методу score.

Обратите внимание, что этот метод имеет значение только тогда, когда данный оценщик используется как подчинённый оценщик внутри метаоценщика и маршрутизация метаданных включена с помощью enable_metadata_routing=True (см. sklearn.set_config). О том, как работает механизм маршрутизации, см. в Руководстве пользователя.

Для каждого параметра доступны следующие варианты:

  • True: метаданные запрашиваются и передаются в score, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется.
  • False: метаданные не запрашиваются, и метаоценщик не передаёт их в score.
  • None: метаданные не запрашиваются, и метаоценщик вызовет ошибку, если пользователь их предоставит.
  • str: метаданные следует передавать метаоценщику под указанным псевдонимом вместо исходного имени.

Значение по умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не затрагивая другие.

Добавлено в версии 1.3.

Параметры:
sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

Возвращает:
selfобъект

Обновлённый объект.

transform(X, **params)[исходный код]

Преобразовать данные и применить transform с помощью конечного оценщика.

Вызвать transform каждого преобразователя в конвейере. Затем преобразованные данные передаются конечному оценщику, который вызывает метод transform. Допустимо, только если конечный оценщик реализует transform.

Метод также работает, если конечный оценщик — None; в этом случае применяются все предыдущие преобразования.

Параметры:
Xитерируемый объект

Данные для преобразования. Должны соответствовать требованиям к входным данным первого шага конвейера.

**paramsсловарь str -> object

Параметры, запрошенные и принимаемые шагами. Каждый шаг должен запросить определённые метаданные, чтобы эти параметры были ему переданы.

Добавлено в версии 1.4: Доступно, только если enable_metadata_routing=True. Подробнее см. в Руководстве пользователя по маршрутизации метаданных.

Возвращает:
Xtndarray формы (n_samples, n_transformed_features)

Преобразованные данные.

Примеры из галереи

Агломерация признаков и одномерный отбор

ColumnTransformer с разнородными источниками данных

ColumnTransformer с разными типами данных

Выбор метода снижения размерности с помощью Pipeline и GridSearchCV

Конвейер: объединение PCA и логистической регрессии

Объединение нескольких методов извлечения признаков

Конвейер ANOVA и SVM

Рекурсивное исключение признаков

Важность перестановок и важность признаков случайного леса (MDI)

Регрессия Пуассона и ненормальная функция потерь

Явная аппроксимация отображения признаков для ядер RBF

Отображение конвейеров

Баланс между сложностью модели и оценкой перекрёстной проверки

Пример конвейера для извлечения и оценки текстовых признаков

Недообучение и переобучение

Кэширование ближайших соседей

Классификация методом ближайших соседей

Сравнение метода ближайших соседей с анализом компонент окрестности и без него

Признаки машины Больцмана с ограничениями для классификации цифр

Внутреннее перекрёстное обучение TargetEncoder

Основные нововведения scikit-learn 1.7

Классификация текстового набора данных с частичным привлечением учителя

SVM-Anova: SVM с одномерным отбором признаков

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.pipeline.Pipeline.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API