管道#
- class sklearn.pipeline.Pipeline(steps, *, transform_input=None, memory=None, verbose=False)[源代码]#
具有可选最终预测器的数据转换器序列。
Pipeline允许您顺序应用转换器列表来预处理数据,并根据需要,以最终的方式结束序列 predictor 用于预测建模。管道的中间步骤必须是变压器,即必须实施
fit和transform方法.最终 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_steps或steps检查管道内的估算器。当安装耗时时,缓存变压器是有利的。看到 缓存最近的邻居 了解如何启用缓存的示例。- 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_std或return_cov,管道中变换产生的不确定性不会传播到最终估计器。
- 返回:
- y_predndarray
呼叫结果
fit_predict关于最终估计器。
- fit_transform(X, y=None, **params)[源代码]#
匹配模型并使用最终估计量进行转换。
逐一安装所有转换器并顺序转换数据。仅在最终估计器实现时有效
fit_transform或fit和transform.- 参数:
- 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)[源代码]#
获取此估计器的参数。
返回构造函数中给出的参数以及包含在
steps的Pipeline.- 参数:
- 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_std或return_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_weightkeyword argument to thescoremethod 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”},默认=无
配置输出
transform和fit_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)
转换的数据。