sklearn 的转换器通常与分类器,回归器或者其他的评估器组合以构建复合评估器。常用的工具是 Pipeline
。Pipeline 通常用于与特征单元结合,将转换器的输出连接到复合的特征空间。TransformedTargetRegressor
用于转换标签(target),相反 Pipeline 仅转换观测数据(X)。
Pipeline 可将多个评估器链接为一个,顺序执行每个评估器。这很有用,因为处理数据通常有固定的步骤,例如特征选择,归一化和分类。只需要调用一次 fit
和 predict
就能够在数据上拟合整个评估器序列,还可以使用栅格搜索一次遍历全部参数。
Usage:
Pipeline 由一个 (key, value) 列表构建,key
是评估器对象 value
的名称。
from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
from sklearn.decomposition import PCA
estimators = [('reduce_dim', PCA()), ('clf', SVC())]
pipe = Pipeline(estimators)
print(pipe)
Output:
Pipeline(memory=None,
steps=[('reduce_dim', PCA(copy=True, ...)),
('clf', SVC(C=1.0, ...)]
使用工具函数 make_pipeline
更加便捷构建 Pipeline,只用传递评估器对象,名称将自动生成。