
算法链与管道
|
243
图 6-3:管道的训练和预测过程概述
管道实际上比上图更加通用。管道的最后一步不需要具有
predict
函数,比如说,我们可
以创建一个只包含一个缩放器和一个 PCA 的管道。由于最后一步(PCA)具有 transform 方
法,所以我们可以对管道调用 transform,以得到将 PCA.transform 应用于前一个步骤处理
过的数据后得到的输出。管道的最后一步只需要具有 fit 方法。
6.4.1
用
make_pipeline
方便地创建管道
利用上述语法创建管道有时有点麻烦,我们通常不需要为每一个步骤提供用户指定的名
称。有一个很方便的函数 make_pipeline,可以为我们创建管道并根据每个步骤所属的类
为其自动命名。make_pipeline 的语法如下所示:
In[17]:
from sklearn.pipeline import make_pipeline
# 标准语法
pipe_long = Pipeline([("scaler", MinMaxScaler()), ("svm", SVC(C=100))])
# 缩写语法
pipe_short = make_pipeline(MinMaxScaler(), SVC(C=100))
管道对象 pipe_long 和 pipe_short 的作用完全相同,但 pipe_short 的步骤是自动命名的。
我们可以通过查看 steps 属性来查看步骤的名称:
In[18]:
print("Pipeline steps:\n{}".format(pipe_short.steps)) ...