1 引入
在机器学习中,将数据集划分为训练集(Training Set)、验证集(Validation Set)和测试集(Test Set)是非常标准的步骤。这三个集合各有其用途:
- 训练集 (Training Set):用于模型学习参数。训练集越大,理论上模型能学到更多数据模式,但过大可能导致过拟合(如果模型过于复杂)。
- 验证集 (Validation Set):用于超参数调优、模型选择、提前停止等。不参与模型参数的训练,但用于模型开发过程中的评估。验证集大小影响调优结果的可靠性。
- 测试集 (Test Set):用于模型开发和调优完成后,对最终模型的最终、无偏见性能评估。测试集大小影响最终评估结果的可靠性。
现在来看 811 和 712 的区别:
811 划分:
- 训练集:80%
- 验证集:10%
- 测试集:10%
712 划分:
- 训练集:70%
- 验证集:10%
- 测试集:20%
2 主要区别和考量
训练数据量:
- 811: 训练集占 80%,提供了更多的样本供模型学习。对于数据量不是特别庞大的情况,更多的训练数据通常能帮助模型学习得更好。
- 712: 训练集占 70%,比 811 少了 10%。这意味着模型用于学习的数据基础更小。
验证数据量:
- 811 和 712 的验证集比例相同 (10%)。在这个比较中,验证集的大小不是主要的区别点。两者提供相同量的样本用于超参数调优和模型选择。
测试数据量和最终评估的可靠性:
- 811: 测试集占 10%。测试集较小,最终的模型性能评估结果的随机性(方差)可能相对较高。如果测试集中的样本偶然性较强,最终报告的性能指标可能不够稳定可靠。
- 712: 测试集占 20%。测试集更大,能提供更稳定、更可靠的最终模型性能评估结果。如果你需要对模型的泛化能力有一个更具信心的估计,或者数据集本身存在较大的类别不平衡或稀有情况,更大的测试集会更有优势,因为它更有可能包含这些情况,从而提供更全面的评估。
总结哪个更好?
同样,没有绝对的“哪个更好”,选择取决于你在训练效率和最终评估可靠性之间的权衡:
倾向于 811 划分的情况:
- 数据集规模相对较小或中等,希望最大化用于模型训练的数据量,以提高模型的潜力。
- 对最终性能评估结果的精确度和可靠性要求不是极致高。
倾向于 712 划分的情况:
- 数据集规模较大,即使减少 10% 的训练数据(从 80% 到 70%),训练集仍然足够庞大,足以训练出高性能的模型。
- 对最终模型性能的评估结果非常重视,需要一个更可靠、更具统计意义的测试集来验证模型的泛化能力(例如,用于学术论文、产品上线前的严谨评估等)。
3 总结
简单来说:
- 811 更侧重于最大化训练数据,可能有助于提升模型的理论性能上限(尤其在数据量有限时)。
- 712 更侧重于提高最终评估的可靠性,让你对模型在真实世界数据上的表现更有信心
数据集多无脑选712,数据集没那么多811就完事呐!一般大多数都选择811进行改进,毕竟数据集也没那么多(大概是小于1w张?)。