
74
|
第
2
章
不使用转换器的情况下,如果你要删除列,则可以指定字符串 "drop"。如
果你希望这些列保持不变,也可以指定 "pass through"。默认情况下,其
余列(即未列出的列)将被删除。如果你希望以不同方式处理这些列,则可以
将 remainder 这个超参数设置为任意转换器(或 "passthrough")。
如果你使用的是 Scikit-Learn 0.19 或更早版本,则可以使用第三方库,例如 sklearn-
pandas,或者可以推出自己的自定义转换器来获得和 ColumnTransformer 相同的功
能。另外,你可以使用 FeatureUnion 类,该类可以应用于不同的转换器并合并其输
出。但是你不能为每个转换器指定不同的列,它们都适用于整个数据。你也可以使用针
对列的自定义转换器来解决这个限制(有关示例,请参见 Jupyter notebook)。
2.6 选择和训练模型
至此,你提出了问题,获得了数据,也进行了数据探索,然后对训练集和测试集进行了
抽样并编写了转换流水线,从而可以自动清理和准备机器学习算法的数据!现在是时候
选择机器学习模型并展开训练了。
2.6.1 训练和评估训练集
好消息是,在经过前面的步骤之后,事情现在变得比想象中容易很多。首先,如同我们
在第 1 章所做的,先训练一个线性回归模型:
from sklearn.linear_model import
LinearRegression
lin_reg = LinearRegression()
lin_reg.fit(housing_prepared, ...