
66
|
第
2
章
这一轮的探索不一定要多么彻底,关键是迈开第一步,快速获得洞见,这将有助于你获
得非常棒的第一个原型。这也是一个不断迭代的过程:一旦你的原型产生并且开始运行,
你可以分析它的输出以获得更多洞见,然后再次回到这个探索步骤。
2.5 机器学习算法的数据准备
现在,终于是时候给你的机器学习算法准备数据了。这里你应该编写函数来执行,而不
是手动操作,原因如下:
•
你可以在任何数据集上轻松重现这些转换(例如,获得更新的数据集之后)。
•
你可以逐渐建立起一个转换函数的函数库,可以在以后的项目中重用。
•
你可以在实时系统中使用这些函数来转换新数据,再输入给算法。
•
你可以轻松尝试多种转换方式,查看哪种转换的组合效果最佳。
但是现在,让我们先回到一个干净的训练集(再次复制 strat_train_set),然后将预
测器和标签分开,因为这里我们不一定对它们使用相同的转换方式(需要注意 drop() 会
创建一个数据副本,但是不影响 strat_train_set):
housing = strat_train_set.drop("median_house_value", axis=1)
housing_labels = strat_train_set["median_house_value"].copy()
2.5.1 数据清理
大部分的机器学习算法无法在缺失的特征上工作,所以我们要创建一些函数来辅助它。
前面我们已经注意到 total_bedrooms 属性有部分值缺失,所以我们要解决它。有以
下三种选择: ...