四、PipeLine
scikit-learn
中的流水线的流程通常为:- 通过一组特征处理
estimator
来对特征进行处理(如标准化、正则化)。 - 通过一组特征提取
estimator
来提取特征。 - 通过一个模型预测
estimator
来学习模型,并执行预测。
除了最后一个
estimator
之外,前面的所有的estimator
必须提供transform
方法。该方法用于执行数据变换(如归一化、正则化、以及特征提取等)。- 通过一组特征处理
Pipeline
将多个estimator
组成流水线,其原型为:class sklearn.pipeline.Pipeline(steps)
steps
:一个列表,列表的元素为(name,transform)
元组。其中:name
是estimator
的名字,用于输出和日志transform
是estimator
。之所以叫transform
是因为这个estimator
(除了最后一个)必须提供transform
方法。
属性:
named_steps
:一个字典。键就是steps
中各元组的name
元素,字典的值就是steps
中各元组的transform
元素。
方法:
fit(X[, y])
:启动流水线,依次对各个estimator
(除了最后一个)执行.fit
方法和.transform
方法转换数据;对最后一个estimator
执行.fit
方法训练学习器。transform(X)
:启动流水线,依次对各个estimator
(包括最后一个)执行.fit
方法和.transform
方法转换数据。fit_transform(X[, y])
:启动流水线,依次对各个estimator
(除了最后一个)执行.fit
方法和.transform
方法转换数据;对最后一个estimator
执行.fit_transform
方法转换数据。inverse_transform(X)
:将转换后的数据逆转换成原始数据。要求每个
estimator
都实现了.inverse_transform
方法。predict(X)/predict_log_proba(X) /predict_proba(X)
:将X
进行数据转换后,用最后一个学习器来预测。score(X, y)
:将X
进行数据转换后,训练最后一个estimator
,并对最后一个estimator
评分。