四、PipeLine

  1. scikit-learn 中的流水线的流程通常为:

    • 通过一组特征处理estimator 来对特征进行处理(如标准化、正则化)。
    • 通过一组特征提取estimator来提取特征。
    • 通过一个模型预测 estimator 来学习模型,并执行预测。

    除了最后一个 estimator 之外,前面的所有的 estimator 必须提供transform方法。该方法用于执行数据变换(如归一化、正则化、以及特征提取等)。

  2. Pipeline将多个estimator组成流水线,其原型为:

    1. class sklearn.pipeline.Pipeline(steps)
    • steps:一个列表,列表的元素为(name,transform)元组。其中:

      • nameestimator 的名字,用于输出和日志
      • transformestimator 。之所以叫transform是因为这个 estimator (除了最后一个)必须提供transform方法。
  3. 属性:

    • named_steps:一个字典。键就是steps中各元组的name元素,字典的值就是steps中各元组的transform元素。
  4. 方法:

    • 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 评分。