管道命令不经常使用,但是很有用,可以把多个步骤组合成一个对象执行。这样可以更方便灵活地调节和控制整个模型的配置,而不是一个一个步骤调节。
下面通过pipeline把多个数据处理步骤组合成一个对象,先将缺失数据填充,然后数据集标准化
构造缺失数据集:
In [3]: from sklearn import datasets
...: import numpy as np
...: mat = datasets.make_spd_matrix(5)
...: masking_array = np.random.binomial(1,0.1,mat.shape).astype(bool)
...: mat[masking_array]=np.nan
...: mat
...:
Out[3]:
array([[ 2.52711026, nan, -1.04043074, 2.06389549, 0.47661882],
[ nan, nan, 0.15508676, 0.01415386, -0.06226449],
[-1.04043074, 0.15508676, nan, -1.19658827, -0.08381655],
[ 2.06389549, nan, -1.19658827, 3.12278438, 0.66169001],
[ 0.47661882, -0.06226449, -0.08381655, 0.66169001, 0.5308833 ]])
不使用pipeline命令处理的过程:
In [4]: from sklearn import preprocessing
...: impute = preprocessing.Imputer()
...: scaler = preproce