Scikit-Learn的管道内发生了什么?

时间:2017-09-30 12:32:56

标签: python scikit-learn pipeline

我正在阅读“使用Scikit-Learn和Tensorflow实践机器学习”中的Scikit-Learn's Pipeline部分。这本书给出了关于管道的解释如下

  

调用管道的fit()方法时,调用fit_transform()   按顺序在所有变换器上传递每个调用的输出为   下一个调用的参数,直到它到达最终估算器,   它只是调用fit()方法

我试图从文本中推断出Pipeline在Python中是如何运作的。

from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

num_pipeline = Pipeline([
    ('imputer', Imputer(strategy="median")),
    ('std_scaler', StandardScaler()),
])

result = num_pipeline.fit(data)
result

起初,我认为这就是Python中的内容:

  1. 创建Imputer(strategy="median")的实例,即imputer
  2. 执行imputer.fit_transform(data)并将对象返回到std_scaler.fit方法的输入,其中std_scalerStandardScaler()的实例
  3. 返回self(在本例中为std_scalar),因为fit方法返回self
  4. 但输出是,

    Pipeline(memory=None,
         steps=[('imputer', Imputer(axis=0, copy=True, missing_values='NaN', strategy='median', verbose=0)), ('std_scaler', StandardScaler(copy=True, with_mean=True, with_std=True))])
    

    管道内发生了什么?

0 个答案:

没有答案