我正在阅读“使用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中的内容:
Imputer(strategy="median")
的实例,即imputer
imputer.fit_transform(data)
并将对象返回到std_scaler.fit
方法的输入,其中std_scaler
是StandardScaler()
的实例self
(在本例中为std_scalar),因为fit
方法返回self
但输出是,
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))])
管道内发生了什么?