date: 2017-10-25 22:27:10 +0800
tags:
- 数学理论
- 机器学习
目录
相关理论
-
训练集:用于训练模型的数据集。
-
开发集(验证集):在通过训练集获得训练模型后,对训练模型的参数进行调整的数据集。
-
测试集:用于测试最终生成的模型的数据集。
训练集\开发集\测试集确定:
- 传统的机器学习领域中,由于收集到的数据量往往不多需要将收集到的数据分为三类:训练集、验证集、测试集。也可以分为两类,不需要开发集集。
比例根据经验不同而不同,这里给出一个例子,如果是三类,可能是训练集:验证集:测试集比例为6:2:2;如果是两类,可能是训练集:测试集比例为7:3。因为数据量不多,所以验证集和测试集需要占的数据比例比较多。
- 在大数据时代的机器学习或者深度学习领域中,如果还是按照传统的数据划分方式不是十分合理,因为测试集和验证集用于评估模型和选择模型,所需要的数据量和传统的数据量差不多,但是由于收集到的数据远远大于传统机器学习时代的数据量,所以占的比例也就要缩小。训练集:验证集:测试集比例为98:1:1。如果是两类,也就是相同的道理。
注意:有些人在把数据分类的时候是没有测试集数据,而把实际上的验证集数据叫做测试集数据,这样并不是十分合理,有测试集比较放心,建议把数据分类最好有这个数据集,也就是分为三类数据。但是只要有足够的数据去训练,足够的数据去验证就行了。有时只有训练集和测试集并不是完全不合理。
处理方法
当训练集、验证集(开发集)、测试集来源不同,即分布不同时。需要对其进行处理。
如上图所示:测试集数据来源于网上清晰图像,而验证集、测试集数据来源于业余人士手机拍照照片。
假设网上下载的照片数据集大小为200000,而手机拍摄的照片数据集大小为10000。
有两种处理方式:
-
一种将网上数据和手机数据混合,然后将数据随机分配给训练集、验证集和测试集。这种方式最后应用效果不好,如上图的1图。
-
另外一种将网上数据作为训练集,并添加部分手机数据作为训练集。剩余手机数据作为验证集和测试集,如上图的2图。从长期来看,这种处理方式能够带来更好的系统性能。