让我们继续创建数据集,以及再数据可视化更深入去洞见数据相关性
1.创建测试集
上篇讲了,我们如何使用纯随机的方法把我们的数据集分成了训练集和测试集。先从编写简单的split_train_test()函数开始,分析出其中存在的问题,最后完善其问题,使得能够不会因为数据集的变动而影响模型的训练。
假如一家公司需要通过1000人去调研几个问题,那么这家公司不会去纯随机的方式找人,而是想要尽量通过这1000人去代表全体。比如美国的人口组成为51.3%的女性和48.7%的男性,则最好这1000人也是513名女性和487名男性。这便是分层抽样:先将人口分成均匀的子集,每个子集一层,然后每层抽取正确的实力数量。
在预测加州的房价中,收入中位数是一个很重要的属性,如图1.1 收入中位数直方图,我们能够很容易的看出收入中位数大概分布在1.5-6.0万美元之间,因此我们可以根据这个范围将收入中位数分成五层。
注意:我们每一层的实例应该足够多,这样才能保证数据不会被错估。应当把层分的少,每一层的实力足够大。这就是为什么我们要先看收入中位数的大致分布,再考虑如何分层。
图1.1 收入中位数直方图