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

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

PDF 物理页索引 255 · 第8章

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

如果数据集规模非常大,这是好事。如果我们有十亿样本,可以使用其中的10%\~15%进行测试,置信区间(confidenceintervals)依然会很窄。如果数据集规模很小,我们可能需要执行诸如交叉验证之类较为复杂的操作。一个典型的错误是,测试集中的数据也在训练集中,即对测试数据进行训练。这会让你发现测试数据的准确率达到100%。这时,请反复检查自己有没有意外地对测试数据进行了训练。一个原因可能是整个数据集中有重复的数据,这些重复的数据分别分到了测试集和训练集。这样就是在一些测试数据上训练,当使用测试集测试模型时,就无法正确评估模型了。

8.3.2 验证集

8.3.1节阐述了测试集和训练集的用法。我们用训练数据训练一种模型,然后使用测试数据对模型进行测试并观察其指标。如图8-34所示,如果把训练和测试做成迭代,每次迭代调整一些设置,比如步长(或学习速率),然后重新尝试前面的操作(训练和测试),看看能否提高测试集的准确率。我们可能会添加一些特征,也可能会去除一些特征,并继续迭代,直到根据测试集指标找出最佳模型为止。这样有问题吗?有的,那就是针对测试数据的特性进行了过拟合。

如图8-35所示,我们可以使用另一种方法来解决这个问题:除了训练集和测试集外,分出一些数据来创建第三个数据集,即验证集。

如图8-36所示,我们使用一种增幅小的新迭代方法对训练数据进行迭代训练,然后仅基于验证数据进行评估。始终将测试数据搁置一旁,完全不使用测试数据。我们将不断迭代、调整各种参数或对模型进行任何更改,直到根据验证数据得出比较理想的结果。只有这时,我们才会拿测试数据测试模型。我们要确保测试数据集得出的结果符合验证数据集得出的结果。如果不符合,那么我们可能对验证集进行了过拟合。

第8章 TensorFlow

239