管道#

class sklearn.pipeline.Pipeline(steps, *, transform_input=None, memory=None, verbose=False)[源代码]#

具有可选最终预测器的数据转换器序列。

Pipeline 允许您顺序应用转换器列表来预处理数据,并根据需要,以最终的方式结束序列 predictor 用于预测建模。

管道的中间步骤必须是变压器,即必须实施 fittransform 方法.最终 estimator 只需要实施 fit .管道中的转换器可以使用 memory 论点

该管道的目的是组装几个步骤,这些步骤可以在设置不同的参数时一起交叉验证。为此,它可以使用各个步骤的名称和用 '__' ,如下例所示。步骤的估计器可以通过将具有其名称的参数设置为另一个估计器来完全替换,或者通过将其设置为来删除Transformer器 'passthrough'None .

对于的示例用例 Pipeline 结合 GridSearchCV ,参考 使用Pipeline和GridSearchCV选择降维 .的示例 流水线:链接PCA和逻辑回归 展示如何使用在管道上进行网格搜索 '__' 作为参数名称中的分隔符。

阅读更多的 User Guide .

Added in version 0.5.

参数:
steps元组列表

要按顺序链接的(步骤名称、估计器)二元组列表。要与scikit-learn API兼容,所有步骤都必须定义 fit .所有非最后步骤还必须定义 transform .看到 Combining Estimators 了解更多详细信息。

transform_input字符串列表,默认=无

的名字 metadata 在将其传递给使用它的步骤之前,管道应该对其进行转换的参数。

这使得可以将某些输入参数转换为 fit (除 X )通过管道的步骤转变到需要它们的步骤。要求定义为 metadata routing .例如,这可以用于通过管道传递验证集。

只有在启用元数据路由时才能设置此值,可以使用 sklearn.set_config(enable_metadata_routing=True) .

Added in version 1.6.

memory具有joblib.内存接口的字符串或对象,默认=无

用于存放管道安装的变压器。最后一步永远不会被缓存,即使它是一个Transformer。默认情况下,不执行缓存。如果给出了字符串,则它是缓存目录的路径。启用缓存会在安装之前触发变形器的克隆。因此,不能直接检查提供给管道的Transformer实例。使用属性 named_stepssteps 检查管道内的估算器。当安装耗时时,缓存变压器是有利的。看到 缓存最近的邻居 了解如何启用缓存的示例。

verbose布尔,默认=假

如果为True,则将在完成每个步骤时打印调整所花费的时间。

属性:
named_steps : Bunch

按名称访问步骤。

classes_形状的nd数组(n_classes,)

班级标签。

n_features_in_int

第一步中看到的功能数量 fit

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

第一步中看到的要素的名称 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 管道中每个Transformer的大小。转换后的数据最终传递给最终的估计器, decision_function 法仅在最终估计器实现时有效 decision_function .

参数:
Xiterable

要预测的数据。必须满足管道第一步的输入要求。

**params字符串->对象的字典

按步骤请求和接受的参数。每个步骤都必须请求将这些参数的某些元数据转发给它们。

Added in version 1.4: 仅在以下情况下可用 enable_metadata_routing=True .看到 Metadata Routing User Guide 了解更多详细信息。

返回:
y_score形状的nd数组(n_samples,n_classes)

呼叫结果 decision_function 关于最终估计器。

fit(X, y=None, **params)[源代码]#

适应模型。

逐一安装所有转换器并顺序转换数据。最后,使用最终估计量来匹配转换后的数据。

参数:
Xiterable

训练数据。必须满足管道第一步的输入要求。

y可迭代,默认=无

培训目标。必须满足管道所有步骤的标签要求。

**params字符串->对象的字典
  • 如果 enable_metadata_routing=False (默认值):传递给 fit 每个步骤的方法,其中每个参数名称都有前置,以便参数 p 对于步骤 s 有关键 s__p .

  • If enable_metadata_routing=True: Parameters requested and accepted by steps. Each step must have requested certain metadata for these parameters to be forwarded to them.

在 1.4 版本发生变更: 参数现在传递给 transform 如果有要求,也包括中间步骤的方法,并且如果 enable_metadata_routing=True 设置为 set_config .

看到 Metadata Routing User Guide 了解更多详细信息。

返回:
self对象

带有合适台阶的管道。

fit_predict(X, y=None, **params)[源代码]#

转换数据并应用 fit_predict 与最终估计器。

呼叫 fit_transform 管道中每个Transformer的大小。转换后的数据最终传递给最终的估计器, fit_predict 法仅在最终估计器实现时有效 fit_predict .

参数:
Xiterable

训练数据。必须满足管道第一步的输入要求。

y可迭代,默认=无

培训目标。必须满足管道所有步骤的标签要求。

**params字符串->对象的字典
  • 如果 enable_metadata_routing=False (默认值): predict 在管道中的所有转换结束时调用。

  • If enable_metadata_routing=True: Parameters requested and accepted by steps. Each step must have requested certain metadata for these parameters to be forwarded to them.

Added in version 0.20.

在 1.4 版本发生变更: 参数现在传递给 transform 如果有要求,也包括中间步骤的方法,并且如果 enable_metadata_routing=True .

看到 Metadata Routing User Guide 了解更多详细信息。

请注意,虽然这可能用于返回某些模型的不确定性, return_stdreturn_cov ,管道中变换产生的不确定性不会传播到最终估计器。

返回:
y_predndarray

呼叫结果 fit_predict 关于最终估计器。

fit_transform(X, y=None, **params)[源代码]#

匹配模型并使用最终估计量进行转换。

逐一安装所有转换器并顺序转换数据。仅在最终估计器实现时有效 fit_transformfittransform .

参数:
Xiterable

训练数据。必须满足管道第一步的输入要求。

y可迭代,默认=无

培训目标。必须满足管道所有步骤的标签要求。

**params字符串->对象的字典
  • 如果 enable_metadata_routing=False (默认值):传递给 fit 每个步骤的方法,其中每个参数名称都有前置,以便参数 p 对于步骤 s 有关键 s__p .

  • If enable_metadata_routing=True: Parameters requested and accepted by steps. Each step must have requested certain metadata for these parameters to be forwarded to them.

在 1.4 版本发生变更: 参数现在传递给 transform 如果有要求,也包括中间步骤的方法,并且如果 enable_metadata_routing=True .

看到 Metadata Routing User Guide 了解更多详细信息。

返回:
Xt形状的nd数组(n_samples,n_transformed_features)

Transformed samples.

get_feature_names_out(input_features=None)[源代码]#

获取用于转换的输出要素名称。

使用管道转换输入特征。

参数:
input_features字符串或无的类数组,默认=无

输入功能。

返回:
feature_names_out字符串对象的nd数组

转换的功能名称。

get_metadata_routing()[源代码]#

获取此对象的元数据路由。

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRouter

A MetadataRouter 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

返回构造函数中给出的参数以及包含在 stepsPipeline .

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
params字符串到任何的映射

参数名称映射到其值。

inverse_transform(X=None, *, Xt=None, **params)[源代码]#

适用 inverse_transform 以相反的顺序为每一步。

管道中的所有估计者必须支持 inverse_transform .

参数:
X形状类似阵列(n_samples,n_transformed_features)

数据样本,其中 n_samples 是样本数量和 n_features 是功能的数量。必须满足管道最后一步的输入要求 inverse_transform

Xt形状类似阵列(n_samples,n_transformed_features)

数据样本,其中 n_samples 是样本数量和 n_features 是功能的数量。必须满足管道最后一步的输入要求 inverse_transform

自 1.5 版本弃用: Xt 在1.5中已废弃,并将在1.7中删除。使用 X 而不是.

**params字符串->对象的字典

按步骤请求和接受的参数。每个步骤都必须请求将这些参数的某些元数据转发给它们。

Added in version 1.4: 仅在以下情况下可用 enable_metadata_routing=True .看到 Metadata Routing User Guide 了解更多详细信息。

返回:
Xt形状的nd数组(n_samples,n_features)

逆变换数据,即原始特征空间中的数据。

property named_steps#

按名称访问步骤。

只读属性,可通过指定名称访问任何步骤。键是步骤名称,值是步骤对象。

predict(X, **params)[源代码]#

转换数据并应用 predict 与最终估计器。

呼叫 transform 管道中每个Transformer的大小。转换后的数据最终传递给最终的估计器, predict 法仅在最终估计器实现时有效 predict .

参数:
Xiterable

要预测的数据。必须满足管道第一步的输入要求。

**params字符串->对象的字典
  • 如果 enable_metadata_routing=False (默认值): predict 在管道中的所有转换结束时调用。

  • If enable_metadata_routing=True: Parameters requested and accepted by steps. Each step must have requested certain metadata for these parameters to be forwarded to them.

Added in version 0.20.

在 1.4 版本发生变更: 参数现在传递给 transform 如果有要求,也包括中间步骤的方法,并且如果 enable_metadata_routing=True 设置为 set_config .

看到 Metadata Routing User Guide 了解更多详细信息。

请注意,虽然这可能用于返回某些模型的不确定性, return_stdreturn_cov ,管道中变换产生的不确定性不会传播到最终估计器。

返回:
y_predndarray

呼叫结果 predict 关于最终估计器。

predict_log_proba(X, **params)[源代码]#

转换数据并应用 predict_log_proba 与最终估计器。

呼叫 transform 管道中每个Transformer的大小。转换后的数据最终传递给最终的估计器, predict_log_proba 法仅在最终估计器实现时有效 predict_log_proba .

参数:
Xiterable

要预测的数据。必须满足管道第一步的输入要求。

**params字符串->对象的字典
  • 如果 enable_metadata_routing=False (默认值): predict_log_proba 在管道中的所有转换结束时调用。

  • If enable_metadata_routing=True: Parameters requested and accepted by steps. Each step must have requested certain metadata for these parameters to be forwarded to them.

Added in version 0.20.

在 1.4 版本发生变更: 参数现在传递给 transform 如果有要求,也包括中间步骤的方法,并且如果 enable_metadata_routing=True .

看到 Metadata Routing User Guide 了解更多详细信息。

返回:
y_log_proba形状的nd数组(n_samples,n_classes)

呼叫结果 predict_log_proba 关于最终估计器。

predict_proba(X, **params)[源代码]#

转换数据并应用 predict_proba 与最终估计器。

呼叫 transform 管道中每个Transformer的大小。转换后的数据最终传递给最终的估计器, predict_proba 法仅在最终估计器实现时有效 predict_proba .

参数:
Xiterable

要预测的数据。必须满足管道第一步的输入要求。

**params字符串->对象的字典
  • 如果 enable_metadata_routing=False (默认值): predict_proba 在管道中的所有转换结束时调用。

  • If enable_metadata_routing=True: Parameters requested and accepted by steps. Each step must have requested certain metadata for these parameters to be forwarded to them.

Added in version 0.20.

在 1.4 版本发生变更: 参数现在传递给 transform 如果有要求,也包括中间步骤的方法,并且如果 enable_metadata_routing=True .

看到 Metadata Routing User Guide 了解更多详细信息。

返回:
y_proba形状的nd数组(n_samples,n_classes)

呼叫结果 predict_proba 关于最终估计器。

score(X, y=None, sample_weight=None, **params)[源代码]#

转换数据并应用 score 与最终估计器。

呼叫 transform 管道中每个Transformer的大小。转换后的数据最终传递给最终的估计器, score 法仅在最终估计器实现时有效 score .

参数:
Xiterable

要预测的数据。必须满足管道第一步的输入要求。

y可迭代,默认=无

用于评分的目标。必须满足管道所有步骤的标签要求。

sample_weight类数组,默认=无

If not None, this argument is passed as sample_weight keyword argument to the score method of the final estimator.

**params字符串->对象的字典

按步骤请求和接受的参数。每个步骤都必须请求将这些参数的某些元数据转发给它们。

Added in version 1.4: 仅在以下情况下可用 enable_metadata_routing=True .看到 Metadata Routing User Guide 了解更多详细信息。

返回:
score浮子

呼叫结果 score 关于最终估计器。

score_samples(X)[源代码]#

转换数据并应用 score_samples 与最终估计器。

呼叫 transform 管道中每个Transformer的大小。转换后的数据最终传递给最终的估计器, score_samples 法仅在最终估计器实现时有效 score_samples .

参数:
Xiterable

要预测的数据。必须满足管道第一步的输入要求。

返回:
y_score形状的nd数组(n_samples,)

呼叫结果 score_samples 关于最终估计器。

set_output(*, transform=None)[源代码]#

当时设置输出容器 "transform""fit_transform" 被称为。

调用 set_output 将将所有估计器的输出设置为 steps .

参数:
transform{“默认”,“pandas”,“polars”},默认=无

配置输出 transformfit_transform .

  • "default" :Transformer的默认输出格式

  • "pandas" :DataFrame输出

  • "polars" :两极输出

  • None :转换配置不变

Added in version 1.4: "polars" 添加了选项。

返回:
self估计器实例

估计实例。

set_params(**kwargs)[源代码]#

设置此估计器的参数。

有效的参数键可以与 get_params() .请注意,您可以直接设置中包含的估计器的参数 steps .

参数:
**kwargsdict

该估计器的参数或包含在中的估计器的参数 steps .步骤的参数可以使用其名称和由“__”分隔的参数名称来设置。

返回:
self对象

管道类实例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') Pipeline[源代码]#

请求元数据传递给 score

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 score 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 score .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 sample_weight 参数 score .

返回:
self对象

更新的对象。

transform(X, **params)[源代码]#

转换数据并应用 transform 与最终估计器。

呼叫 transform 管道中每个Transformer的大小。转换后的数据最终传递给最终的估计器, transform 法仅在最终估计器实现时有效 transform .

这也适用于最终估计量 None 在这种情况下,应用所有先前的转换。

参数:
Xiterable

数据转换。必须满足管道第一步的输入要求。

**params字符串->对象的字典

按步骤请求和接受的参数。每个步骤都必须请求将这些参数的某些元数据转发给它们。

Added in version 1.4: 仅在以下情况下可用 enable_metadata_routing=True .看到 Metadata Routing User Guide 了解更多详细信息。

返回:
Xt形状的nd数组(n_samples,n_transformed_features)

转换的数据。