训练集,验证集与测试集

百度百科的解释

在机器学习和模式识别等领域中,一般需要将样本分成独立的三部分训练集验证集测试集。其中训练集用来训练模型,验证集用来确定网络结构或者控制模型复杂程度的参数,而测试集则检验最终选择最优的模型的性能如何。一个典型的划分是训练集占总样本的50%,而其它各占25%,三部分都是从样本中随机抽取。

但是,当样本总量少的时候,上面的划分就不合适了。常用的是留少部分做测试集。然后对其余N个样本采用K折交叉验证法。就是将样本打乱,然后均匀分成K份,轮流选择其中K-1份训练,剩余的一份做验证,计算预测误差平方和,最后把K次的预测误差平方和再做平均作为选择最优模型结构的依据。特别的K取N,就是留一法(leave one out)。

用考试来做比方的话,训练集就像我们用来学习的有答案的习题集。验证集像是一张模拟考卷,而测试集就是最终的大考。所以一般一个有效的验证集往往意味着这题已经成功了一半,而一个错误的验证集意味着南辕北辙。

 

知乎上一个不错的解释

在机器学习建模过程中,将数据分为训练集测试集。测试集和训练集是完全分开的两个数据集,测试集完全不参与训练,只是用于模型最终确定后,来测试模型的效果。而训练集又要分出一部分数据用来验证模型的训练效果,即验证集。验证集在每次训练集训练结束后,对模型的效果进行初步地测试。之所以要设置验证集,是因为训练数据会有过拟合的情况出现,即训练数据能够很好地匹配训练数据,但对于训练数据之外的数据效果非常差,如果此时就使用测试集来调整模型参数,就相当于在训练时已知部分测试数据的信息,会影响最终评估结果的准确性。验证集不参与训练,可以客观地评价模型对于训练集之外的数据的匹配度

 

总结

  1. 训练集:用于模型训练;
  2. 验证集:取自训练集但不参与训练,用于每次训练结束后测试模型的效果,防止过拟合;
  3. 测试集:模型最终确定后测试模型的效果。
  4. K折交叉验证:将原始数据分成K组(K-Fold),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型。这K个模型分别在验证集中评估结果,最后的误差MSE(Mean Squared Error)加和平均就得到交叉验证误差。K折交叉验证有效利用了有限的数据,并且评估结果能够尽可能接近模型在测试集上的表现,可以作为模型优化的指标使用
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值