验证集:另一个划分

上一单元介绍了如何将数据集划分为训练集和测试集。通过此分区,您可以基于一组样本进行训练,然后针对另一组样本测试模型。使用两个部分时,工作流程可能如下所示:

包含三个阶段的工作流程图。1. 使用训练集训练模型。2. 使用测试集评估模型。3. 根据在测试集上获得的结果对模型进行微调。对 1、2 和 3 进行迭代,最终选择在测试集上获得最佳效果的模型。

图 1. 是否有可行的工作流程?

在图中,“调整模型”表示调整您可以构想的模型的任何方面 - 从更改学习速率、添加或移除特征,到从头开始设计全新的模型。在此工作流结束时,您可以选择在测试集上获得最佳效果的模型。

将数据集划分为两个集合固然不错,但不是万能的。 通过将数据集划分为下图所示的三个子集,您可以大大降低过拟合的可能性:

水平条分为三部分:70% 为训练集,15% 为验证集,15% 为测试集

图 2. 将单个数据集划分为三个子集。

使用验证集评估训练集的结果。 然后,在模型“通过”验证集之后,使用测试集仔细检查您的评估。下图展示了这一新工作流:

该工作流程与图 1 类似,不同之处在于此工作流程不是使用测试集评估模型,而是根据验证集评估模型。然后,在训练集和验证集大致达成一致后,对照测试集确认模型。

图 3. 优化工作流程。

在这个经过改进的工作流程中:

  1. 选择在验证集上获得最佳效果的模型。
  2. 请对照测试集仔细检查该模型。

这是一个更好的工作流程,因为它创建的测试集曝光较少。