首页 > 编程知识 正文

训练数据集验证数据集和测试数据集指的是同一个数据集,数据集训练集测试集划分比例

时间:2023-05-03 14:24:51 阅读:241666 作者:1553

评估模型的重点是将数据划分为三个集合:训练集、验证集和测试集。在训练数据上训练 模型,在验证数据上评估模型。一旦找到了最佳参数,就在测试数据上最后测试一次。
你可能会问,为什么不是两个集合:一个训练集和一个测试集?在训练集上训练模型,然后在测试集上评估模型。这样简单得多!
原因在于开发模型时总是需要调节模型配置,比如选择层数或每层大小[这叫作模型的超 参数(hyperparameter),以便与模型参数(即权重)区分开]。这个调节过程需要使用模型在验 证数据上的性能作为反馈信号。这个调节过程本质上就是一种学习:在某个参数空间中寻找良 好的模型配置。因此,如果基于模型在验证集上的性能来调节模型配置,会很快导致模型在验 证集上过拟合,即使你并没有在验证集上直接训练模型也会如此。
造成这一现象的关键在于信息泄露(information leak)。每次基于模型在验证集上的性能来 调节模型超参数,都会有一些关于验证数据的信息泄露到模型中。如果对每个参数只调节一次, 那么泄露的信息很少,验证集仍然可以可靠地评估模型。但如果你多次重复这一过程(运行一 次实验,在验证集上评估,然后据此修改模型),那么将会有越来越多的关于验证集的信息泄露 到模型中。
最后,你得到的模型在验证集上的性能非常好(人为造成的),因为这正是你优化的目的。 你关心的是模型在全新数据上的性能,而不是在验证数据上的性能,因此你需要使用一个完全 不同的、前所未见的数据集来评估模型,它就是测试集。你的模型一定不能读取与测试集有关 的任何信息,既使间接读取也不行。如果基于测试集性能来调节模型,那么对泛化能力的衡量 是不准确的。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。