【deeplearning.ai笔记第二课】1.1 训练集,验证集和测试集
一般把数据集分为三部分:train set, valid set, test set
分别用于训练模型,调整超参数,测试模型。
其中valid set 又叫development set ,简称 dev set。
交叉验证(hold out cross validation)
随机从一组测定数据中抽取一部分数据来建立模型,用其余的数据来检验此模型的方法。最常见的是十折交叉验证,即把训练集随机分为十份,每次取一份做valid set,剩余作为train set。这样得到N个模型,N个验证结果。用这N个结果的平均值来衡量模型的性能。
分配比例
传统机器学习阶段(数据集在万这个数量级),一般分配比例为6:2:2
而大数据时代,这个比例就不太适用了。因为百万级的数据集,即使拿1%的数据做test也有一万之多,已经足够了。可以那更多的数据做训练。因此常见的比例可以达到98:1:1 ,甚至可以达到99.5:0.4:0.1等。
Mismatched train/test distribution
实际项目中,会出现训练集和验证集,测试集不太一样的情况。
比如训练集是网上爬取的猫片,验证集和测试集是自己手机拍的照片。
这种情况下,要保证验证集和测试集来自同一分布,不然的话,模型的评估就有问题。
- 只有train set 和dev set ,没有test set 也可以。
很多团队会把这种情况下的dev set 称为test set