训练集
针对某个模型函数进行训练的一个数的集合。 训练集的占比是比较大的,因为要获得“学习经验”,就应该有大量的练习。就好比你想考出凡尔赛那样成绩的高度,你就要有我在刷题;我在去买资料的路上;我在思考刚刚的问题;……的状态,量变到质变
验证集
验证训练过后的函数模型能不能较好地去完成某个功能的集合。
验证集的出现:
(1)检查函数模型是否出现过拟合的情况(过拟合是指函数模型仅仅只是对训练集数据有很好的预测能力;)所以一般在使用验证集的时候就会对函数中的参数进行优化;
(2)用于在训练过程中检验模型的状态,收敛情况。一般通过超参数的调整,来选定性能最好的函数模型。
(3)用来判断何时停止训练。过拟合的情况是验证集表现稳定,继续训练会出现训练集上升,验证集不升反降。此时就应该停止训练。
测试集
对函数模型进行测试,评估其泛化能力的大小。
训练集定一般参数,验证集定超参数,最后总要来检测一下函数的普适性是不是和预想的一致,这个就要用到测试集了。
需要注意的是:
验证集与测试集都不参与训练。
一般参数是指通过机器的运算来逐步改变的参数(通常会用到相应的算法,比如梯度下降算法)
超参数是指在程序运行前,人为设定的可变参数 超参的缺点也是需要人为加以改变,所以可能会很麻烦。
这样说二者的区别就很明显了,一般参数在程序运行中是会改变的,超参数不改变。相同点是二者在程序运行前都会预设一个值。
三个数据集间的关系
最好的类比就是贴近我们学生的生活实例:
训练集——课本,自己买的练习册
验证集——老师留的测试题及课堂小测验
测试集——学校组织的大型考试,同样的知识点,不同的题型
交叉验证的概念
交叉验证的提出是用来命名独特的测试集与验证集的关系。哪里独特?独特在此时测试集与验证集里的元素各不相同的,也就是 测试集
∩
\cap
∩验证集=空集。
交叉验证是为了能真实的检验你是不是真的学会了某个知识点。就比如教给你,一根筷子+一根筷子=两根,验证集就设为:一个苹果+一个苹果=?个苹果。