当数据预处理的工作较多时,可能会涉及更多的步骤,此时分别执行每个步骤会显得过于繁琐。
流水线(Pipeline类)可以将每个评估器视为一个步骤,然后将多个步骤作为一个整体而依次执行,这样,我们就无需分别执行每个步骤。
流水线具有最后一个评估器的所有方法。当通过流水线对象调用方法£时,会执行这样的过程(假设流水线具有n个评估器):
- 如果£是fit方法,则会首先对前n-1个评估器依次调用fit_transform方法,然后在最后一个评估器上调用£(fit)方法。
- 如果£是其他方法,则会首先对前n-1个评估器依次调用transform方法,然后在最后一个评估器上调用£方法。
例如:当在流水线上调用fit方法时,将会依次在每个评估器上调用fit_transform方法,前一个评估器将转换之后的结果传递给下一个评估器,直到最后一个评估器调用fit方法为止(最后一个评估器不会调用transform方法)。而当在流水线上调用predict方法时,则会依次在每个评估器上调用transform方法,在最后一个评估器上调用predict方法。
from sklearn.pipeline import Pipeline
X, y =