我理解为什么我们需要训练集、验证集和测试集。简而言之:
- 训练集 – 用于训练模型
- 验证集 – 用于比较模型或模型内的超参数
- 测试集 – 获取模型在新数据上的无偏性能估计
我明白在许多情况下,你希望获得模型性能的无偏估计,例如发表论文或向客户报告结果。然而,在我的情况下,我并不关心在新数据上获得模型性能的无偏估计。我只是想找到最好的模型并使用它。此外,我的可用数据并不多,我更希望有更大的训练集和验证集。除了无偏的模型性能估计之外,还有其他理由需要包含测试集吗?对我来说,只使用训练集和验证集是否合理?
回答:
如果你调整参数以在验证集上表现良好,并且从不进行进一步调整就测试模型,那么评估模型的性能将变得困难。
验证集允许你获取模型性能的反馈,并调整超参数/特征等,但要真正测量你的模型及其在新数据上的预期表现,应该使用模型尚未见过的数据进行测量。
简而言之,通过调整参数和设计特定的特征,很容易使验证集过拟合,从而夸大模型在真实数据上的实际性能。这就是测试集提供价值的地方。