Pipeline#

класс sklearn.pipeline.Pipeline(шаги, *, transform_input=None, память=None, verbose=False)[источник]#

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

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

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

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

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

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

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

Параметры:
шагисписок кортежей

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

transform_inputсписок str, по умолчанию=None

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

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

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

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

памятьstr или объект с интерфейсом joblib.Memory, по умолчанию=None

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

verbosebool, по умолчанию=False

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

Атрибуты:
named_stepsBunch

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

classes_ndarray формы (n_classes,)

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

n_features_in_int

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

feature_names_in_ndarray формы (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.

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

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

**paramsсловарь строк -> объект

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

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

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

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

fit(X, y=None, **params)[источник]#

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

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

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

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

yитерируемый объект, по умолчанию=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.

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

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

yитерируемый объект, по умолчанию=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.

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

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

yитерируемый объект, по умолчанию=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 формы (n_samples, n_transformed_features)

Преобразованные выборки.

get_feature_names_out(input_features=None)[источник]#

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

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

Параметры:
input_featuresarray-like из str или None, по умолчанию=None

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

Возвращает:
feature_names_outndarray из str объектов

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

6332()[источник]#

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

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

Возвращает:
маршрутизацияMetadataRouter

A MetadataRouter Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

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

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

Параметры:
глубокийbool, по умолчанию=True

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

Возвращает:
paramsотображение строки в любое значение

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

inverse_transform(X, **params)[источник]#

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

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

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

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

**paramsdict of str -> object

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

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

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

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

свойство named_steps#

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

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

predict(X, **params)[источник]#

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

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

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

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

**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.

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

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

**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 формы (n_samples, n_classes)

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

predict_proba(X, **params)[источник]#

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

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

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

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

**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 формы (n_samples, n_classes)

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

score(X, y=None, sample_weight=None, **params)[источник]#

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

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

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

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

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

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

sample_weightarray-like, default=None

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

**paramsdict of str -> object

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

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

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

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

score_samples(X)[источник]#

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

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

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

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

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

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

set_output(*, преобразовать=None)[источник]#

Установить выходной контейнер, когда "transform" и "fit_transform" вызываются.

Вызов set_output установит выход всех оценщиков в steps.

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

Настройка вывода transform и fit_transform.

  • "default": Формат вывода трансформера по умолчанию

  • "pandas": DataFrame вывод

  • "polars": Вывод Polars

  • None: Конфигурация преобразования не изменена

Добавлено в версии 1.4: "polars" опция была добавлена.

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

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

set_params(**kwargs)[источник]#

Установить параметры этого оценщика.

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

Параметры:
**kwargsdict

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

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

Экземпляр класса 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.

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

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

преобразовать(X, **params)[источник]#

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

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

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

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

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

**paramsdict of str -> object

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

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

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

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