定义
训练集用来拟合参数,验证集用来查看参数的好坏,测试集在完成后测试置信度确保不会出问题。
划分
传统的分法是把数据集分成训练集(70%)和测试集(30%),或者在需要交叉验证集时分为:训练集(60%)、交叉验证集(20%)、测试集(20%)。
但是现在是大数据时代,假设你的数据量大于100万,那么可以分成训练集(98%)、交叉验证集(1%)、测试集(1%)。因为10000个数据已经具有普遍性了。
差异、联系
还有就是验证集和测试集之间的关系。最好处于同一个数据集合,否则跑出来的东西和要应用的不一样想想都知道是什么后果。
例如: 训练集验证集是中国人的图片,测试集是外国人的图片;训练集验证集是高清图片、测试集图片很模糊。
不同数据下的划分
假设现在有100万个A数据,2万个B数据,存在一定联系。
真实应用时大部分为B,但是也有小部分A。那么改怎么分配训练集和验证集、测试集呢?
假设将A和B揉到一起,随机分布后,分为90%,10%,10%。这样做存在一个很大的缺点:验证集和测试集的大部分数据为A,与真实应用不搭,其准确率没有参考价值。
我们可以将99.9万A和1万B当成训练集,再分配0.1万A和1万B到验证集、测试集,来拟合真实应用。
不同数据下的方差判断
可能训练集的数据与验证、测试集的数据同分布。那么此时直接用训练集的误差和测试集的误差进行比较就不能得出是否存在方差(过拟合)了。
处理方法
在打乱训练集的前提下,从训练集中拿出一小部分来,叫作训练-验证集。
训练-验证集有两个特点:数据分布与训练集相同;和验证集一样,算法都没有见过。
所以可以用训练集和训练-验证集的误差比较,得出是否过拟合。
用验证集和训练-验证集的误差比较,得出两部分数据的差异程度。