sklearn.pipeline.Pipeline

class sklearn.pipeline.Pipeline(steps, *, memory=None, verbose=False)

[源码]

带有最终估计器的转换管道。

依次应用转换列表和最终估计器。管道中间的steps必须是“transforms”(转换器),也就是说,它们必须实现拟合和转换方法。最终估计器只需实现拟合。使用memory参数可以缓存管道中的转换器。

管道的目的是组装几个可以一起交叉验证的steps,同时设置不同的参数。为此,它可以使用他们的名称和以“__”分隔的参数名称来设置各个steps的参数,如下所示。可以通过将参数的名称设置为另一个估计器来完全替换一个step的估计器,也可以通过将其设置为“ passthrough”或None删除转换器。

用户指南中阅读更多内容。

0.5版的新功能。

参数 说明
steps list
(命名,转换)元组(实现拟合/转换)的列表,按照它们被链接的顺序,最后一个对象是估计器。
memory str or object with the joblib.Memory interface, default=None
用于缓存拟合转换的管道。默认情况下,不执行缓存。如果给定一个字符串,则它是缓存目录的路径。启用缓存会触发转换器在拟合之前的克隆。因此,不能直接检查提供给管道的转换器实例。可以使用属性named_stepssteps检查管道中的估计器。当拟合耗时时,缓存转换器是有利的。
verbose bool, default=False
如果为True,则在拟合每个step时将打印经过的时间。
属性 说明
named_steps Bunch
类字典对象,具有以下属性。只读属性,用于通过用户给定名称访问任意step的参数。键是step的名称,值是step的参数。

另见:

sklearn.pipeline.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)
Pipeline(steps=[('scaler', StandardScaler()), ('svc', SVC())])
>>> pipe.score(X_test, y_test)
0.88

方法

方法 说明
decision_function(X) 应用transforms,和最后一个估计器的decision_function
fit(X[, y]) 拟合模型
fit_predict(X[, y]) 在transforms后应用管道中最后一个step的fit_predict
fit_transform(X[, y]) 拟合模型并用最后一个估计器进行转换
get_params([deep]) 获取这个估计器的参数
predict(X, **predict_params) 将transforms应用于数据,并使用最后一个估计器进行预测
predict_log_proba(X) 应用transforms,和最后一个估计器的predict_log_proba
predict_proba(X) 应用transforms,和最后一个估计器的predict_proba
score(X[, y, sample_weight]) 应用transforms,和最后一个估计器的score
score_samples(X) 应用transforms,和最后一个估计器的score_samples
set_params(**kwargs) 为这个估计器设置参数
__init__(steps, *, memory=None, verbose=False)

[源码]

初始化self。详情可参阅 type(self)的帮助。

decision_function(X)

[源码]

应用transforms,和最后一个估计器的decision_function

参数 说明
X iterable
用于预测的数据。必须满足管道第一个step的输入要求。
返回值 说明
y_score array-like of shape (n_samples, n_classes)
fit(X, y=None, **fit_params)

[源码]

拟合模型

依次拟合所有转换器变换并转换数据,然后使用最后一个估计器拟合转换后的数据。

参数 说明
X iterable
用于训练的数据。必须满足管道第一个step的输入要求。
y iterable, default=None
训练集标签。必须满足管道所有steps的标签要求。
**fit_params dict of string -> object
每个step传递给fit方法的参数,其中每个参数名称都带有前缀,比如用于步骤s的参数p有键s__p
返回值 说明
self Pipeline
这个估计器
fit_predict(X, y=None, **fit_params)

[源码]

在transforms后应用管道中最后一个step的fit_predict。

将管道的fit_transforms应用于数据,然后将管道中的最后一个估计器的fit_predict方法应用于数据。仅在最后一个估计器实现fit_predict时有效。

参数 说明
X iterable
用于训练的数据。必须满足管道第一个step的输入要求。
y iterable, default=None
训练集标签。必须满足管道所有steps的标签要求。
**fit_params dict of string -> object
每个step传递给fit方法的参数,其中每个参数名称都带有前缀,比如用于步骤s的参数p有键s__p
返回值 说明
y_pred array-like
fit_transform(X, y=None, **fit_params)

[源码]

拟合模型并用最后一个估计器进行转换

依次拟合所有转换器并转换数据,然后对带有最后一个估计器的转换后数据使用fit_transform。

参数 说明
X iterable
用于训练的数据。必须满足管道第一个step的输入要求。
y iterable, default=None
训练集标签。必须满足管道所有steps的标签要求。
**fit_params dict of string -> object
每个step传递给fit方法的参数,其中每个参数名称都带有前缀,比如用于步骤s的参数p有键s__p
返回值 说明
Xt array-like of shape (n_samples, n_transformed_features)
转换后的样本
get_params(deep=True)

[源码]

获取这个估计器的参数

参数 说明
deep bool, default=True
如果为True,则将返回这个估计器的参数和所包含的估计器子对象。
返回值 说明
params mapping of string to any
参数名映射到其值
property inverse_transform

以相反顺序应用逆变换。

管道中的所有估计器都必须支持inverse_transform

参数 说明
Xt array-like of shape (n_samples, n_transformed_features)
数据样本,其中n_samples是样本数量, n_features是特征数量。必须满足管道最后一个step的inverse_transform方法的输入要求 。
返回值 说明
Xt array-like of shape (n_samples, n_features)
predict(X, **predict_params)

[源码]

将transforms应用于数据,并使用最后一个估计器进行预测

参数 说明
X iterable
用于预测的数据。必须满足管道第一个step的输入要求。
**predict_params dict of string -> object
在管道中的所有转换结束时调用predict参数。请注意,虽然这可以用于从带有return_std或return_cov的某些模型返回不确定性,但是由管道中的转换生成的不确定性不会传播到最后一个估计器。

0.20版中的新功能。
返回值 说明
y_pred array-like
predict_log_proba(X)

[源码]

应用transforms,和最后一个估计器的predict_log_proba

参数 说明
X iterable
用于预测的数据。必须满足管道第一个step的输入要求。
返回值 说明
y_score array-like of shape (n_samples, n_classes)
predict_proba(X)

[源码]

应用transforms,和最后一个估计器的predict_proba

参数 说明
X iterable
用于预测的数据。必须满足管道第一个step的输入要求。
返回值 说明
y_proba array-like of shape (n_samples, n_classes)
score(X, y=None, sample_weight=None)

[源码]

应用transforms,和最后一个估计器的score

参数 说明
X iterable
用于预测的数据。必须满足管道第一个step的输入要求。
y iterable, default=None
用于计算准确率的标签值。必须满足管道所有steps的标签要求。
sample_weight array-like, default=None
如果不是None,则将此参数作为sample_weight关键字参数传递给最后一个估计器的score方法。
返回值 说明
score float
score_samples(X)

[源码]

应用transforms,和最后一个估计器的score_samples

参数 说明
X iterable
用于预测的数据。必须满足管道第一个step的输入要求。
返回值 说明
y_score ndarray of shape (n_samples,)
set_params(**kwargs)

[源码]

为这个估计器设置参数

有效的参数键可以用get_params()列出。

返回值
self
property transform

应用transforms,并使用最后一个估计器的transform

这在最后一个估计器为None的情况下也适用:应用之前所有的转换器。

参数 说明
X iterable
用于转换的数据。必须满足管道第一个step的输入要求。
返回值 说明
Xt array-like of shape (n_samples, n_transformed_features)