训练、验证和测试集的最佳分割

问题描述

我最初认为分割训练、验证和测试数据的一个好的经验法则是 60-20-20。但是,最佳答案 here 似乎建议使用 80:20 进行训练和测试,然后将 80% 的 20% 用于验证数据(这相当于采用 0.2 的验证拆分,例如使用 Keras 模型。合身())。但是,在这种情况下,这不是 60-20-20——这里测试数据的大小明显大于验证数据的大小。

例如,如果总共有 100 个样本,其中 80% 用于训练,那么剩下 80 个样本用于训练,另外 20% 用于使用 20 个样本进行测试。

如果您取 80% 的 20%,则取 80% 的 20%,即 16。这总体上意味着训练、验证和测试的总体分配分别为 64%-16%-20%。

这仍然是正确的/好的/好的经验法则吗?或者我应该从 80% 的总数中取 20% 进行测试——这样在这种情况下,我取了 25% 的训练数据,以便将 20 个样本分配给验证集,而我现在有 60 -20-20 分裂?

对于更合适/标准的做法,为什么会这样?是否有标准的、传统的选择?

解决方法

一切的最终目标是提高模型准确度...分割取决于您拥有的实例数量...如果您能够通过分割方式获得更好的准确度,那么你可以使用它,但它不会带来剧烈的变化...! 主要取决于您处理的数据类型、数据大小或实例数量。