奎克的藏经阁 · 原书印刷页

人工智能与大数据技术导论 · 第 238 页

PDF 物理页索引 254 · 第8章

书名
人工智能与大数据技术导论
作者
未记录
印刷页
238
PDF 物理页
254(从 0 开始)
章节
第8章
UUID
cd4f7678-cd9b-4971-bde0-e9ad46a6cc71
来源类型
original_book
页面 SHA-256
1778d1be9592ed225f0a7a55b9452a3c59240dbdc6eeb98462cbe97680daa735

8.3.1训练集和测试集

如何才能确保在实践中模型不会过拟合呢?在理想情况下,我们希望能够对数据样本进行训练,然后知道这个模型会很好地预测新样本。简单来说,一个好的模型应尽可能简单。这个称为“泛化(generalization)理论”。过拟合往往是模型太复杂造成的。一个基本原则是拟合数据刚刚好,而且尽量简单。在机器学习中,我们利用的是经验。我们的策略是,使用测试集。我们从整个数据集中抽取一批数据,对这些数据进行训练,这就是训练集(trainingset)。我们再从同一个数据集中另外抽取一批数据,称为测试集(test set),如果测试集的预测效果好,即预测测试集和预测训练集的效果一样好,我们就可以满意地确定,模型可以很好地泛化到未来的新数据。在这里,要注意以下事项(这也是机器学习的一些细则):

我们要以独立且一致(independently and identically)的方式从整个数据集抽取样本,不以任何方式主动产生偏差。训练集和测试集应该是随机抽取的,而不是相同的数据子集。同时测试集要足够大。

●整个数据集是平稳的(stationary),不会随时间发生变化。

●训练集和测试集始终从同一个数据集中提取样本,在当中不会从其他数据集中提取样本。

以上是一些非常关键的假设,我们在监督式机器学习中,所做的许多工作都是以这些假设为基础的。但是在实践中,有时会违反这些假设。比如,我们有时可能会违反平稳性假设,例如用户的购物行为在节假日或夏季是不同的。如果我们只是用节假日数据建立了模型,那么该模型可能对夏季数据是不准的。因此,我们必须密切关注各项指标,在违反上述假设时,就能立即知晓。

如果只有一个数据集,该怎么办?我们可以将这个大型数据集分成两个小数据集:一个用于训练;另一个用于测试。测试集数据要能够代表整个数据集,训练集和测试集具有相同的特性,如图8-33所示。

这两个数据集需要相互独立。我们可能需要先进行随机化,再拆分数据。这样才能避免发生诸如意外将全部节假日数据归入训练数据集,而将全部夏季数据归入测试数据集之类的糟糕情况。那么我们该怎么拆分一个数据集呢?有两点需要注意:

●训练集规模越大,模型的学习效果就越好。

●测试集规模越大,我们对于评估指标的信心越充足,置信区间就越窄。

人工智能与大数据技术导论

238