训练集 验证集 测试集

Posted 已删除ddd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了训练集 验证集 测试集相关的知识,希望对你有一定的参考价值。

通常,在训练有监督的机器学习模型的时候,会将数据划分为训练集、验证集和测试集。

机器学习早期,数据集较小,比如一千条数据,一般工程实践上将三者的划分比例定为


对原始数据进行三个集合的划分,是为了能够选出效果(可以理解为准确率)最好的、泛化能力最佳的

0.6:0.2:0.2(训练集:验证集:测试集)。有验证集
0.7:0.3 (训练集:测试集)。无验证集

模型。

随着机器学习的发展,数据集的规模也越来越大,比如一百万条数据,三者的比例有所变动

0.98:0.01:0.01 (训练集:验证集:测试集)

当然这只是一个参考,目的是为了让大家明白,随着数据量的增大,测试集的比例也应该随着增大,毕竟机器学习的目的是为了寻找合适的模型,当数据量达到百万级的时候,百分之一的数据集已经足够用来验证模型了。


训练集(Training set)

作用是用来拟合模型,通过设置分类器的参数,训练分类模型。后续结合验证集作用时,会选出同一参数的不同取值,拟合出多个分类器。


验证集(Cross Validation set/Development set/ Hold-out)

作用是当通过训练集训练出多个模型后,为了能找出效果最佳的模型,使用各个模型对验证集数据进行预测,并记录模型准确率。选出效果最佳的模型所对应的参数,即用来调整模型参数。如SVM中的参数c和核函数等。


测试集(Test set)

通过训练集和验证集得出最优模型后,使用测试集进行模型预测。用来衡量该最优模型的性能和分类能力。即可以把测试集当做从来不存在的数据集,当已经确定模型参数后,使用测试集进行模型性能评价。


对原始数据进行三个数据集的划分,也是为了防止模型过拟合。当使用了所有的原始数据去训练模型,得到的结果很可能是该模型最大程度地拟合了原始数据,亦即该模型是为了拟合所有原始数据而存在。当新的样本出现,再使用该模型进行预测,效果可能还不如只使用一部分数据训练的模型。

以上是关于训练集 验证集 测试集的主要内容,如果未能解决你的问题,请参考以下文章

训练集、验证集和测试集

训练集,验证集,测试集的作用

验证集与测试集有啥区别?为啥要分训练集、验证集和测试集?

交叉验证与训练集验证集测试集

数据集拆分:训练集、验证集、测试集

sklearn交叉验证-老鱼学sklearn