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_steps 或steps 检查管道中的估计器。当拟合耗时时,缓存转换器是有利的。 |
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) |