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": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 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)
Преобразованные данные.
Примеры галереи#
Трансформер столбцов с разнородными источниками данных
Выбор уменьшения размерности с помощью Pipeline и GridSearchCV
Конвейеризация: объединение PCA и логистической регрессии
Объединение нескольких методов извлечения признаков
Важность перестановок против важности признаков случайного леса (MDI)
Аппроксимация явного отображения признаков для RBF-ядер
Баланс сложности модели и кросс-валидационной оценки
Примерный пайплайн для извлечения и оценки текстовых признаков
Сравнение ближайших соседей с анализом компонент соседства и без него
Признаки ограниченной машины Больцмана для классификации цифр
Полу-контролируемая классификация на текстовом наборе данных