训练集、验证集、测试集的区别与联系
使用随机森林算法时用到了交叉验证,突然陷入沉思,有测试集的情况下用交叉验证做什么?整理思路如下:
1、训练集,顾名思义,就是拿来训练模型的数据集,通过这个数据训练得到模型的参数;
2、验证集,可以用来做超参数的选取与模型的选取,在没有测试集的情况下也可以评价模型的性能。
3、测试集,用来评价模型的效果。
总结:验证集只是参与模型的选取或者超参数的选取等等,交叉验证虽然做了多个模型,但是实际最终的模型与这多个模型无关,还是用的所有样本训练的。个人理解是如果不涉及到超参数的选取,可以不做交叉验证,即不划分专门的验证集,就拿所有的训练集和验证集建模即可。测试集只是用来评价模型的效果,最终的模型还是用全部样本训练的。
注:
参数:就是模型可以根据数据可以自动学习出的变量,应该就是参数。比如,深度学习的权重,偏差等
超参数:就是用来确定模型的一些参数,超参数不同,模型是不同的(比如说:假设都是CNN模型,如果层数不同,模型不一样,虽然都是CNN模型。),超参数一般就是根据经验确定的变量。在深度学习中,超参数有:学习速率,迭代次数,层数,每层神经元的个数等等。