如果使用交叉验证,是否还需要单独分出测试集?

Posted 赏月斋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果使用交叉验证,是否还需要单独分出测试集?相关的知识,希望对你有一定的参考价值。

比方说,用100k条数据,有两个思路

1. 用这100k条数据做k-fold交叉验证,来调模型参数

2. 先随机划分出70k条数据做训练集用来根据交叉验证调参数,调好之后再用剩下的30k条数据做测试集

【答】

虽然这两个都没有错对之分,但是在数据量允许的情况下,更建议第2个思路。

对于思路1,如果用交叉验证的预测误差作为模型的预测误差,这是有偏差的。因为交叉验证的误差通常是小于真实测试误差的。

思路2是推荐的。因为测试集一定要和模型本身独立、无关,测试集不能参与模型的训练。

引申开来,还有第二层意思,你利用70k的数据训练完模型后,不能根据在30k测试集上的表现再回去重新调整参数,因为一旦你这样做了,你就很可能会过拟合,你的交叉验证也就没有意义了。

以上是关于如果使用交叉验证,是否还需要单独分出测试集?的主要内容,如果未能解决你的问题,请参考以下文章

基于sklearn和keras的数据切分与交叉验证

为啥我的交叉验证始终比训练测试分割表现更好?

使用交叉验证评估逻辑回归

使用训练阶段使用的完全相同的数据集进行交叉验证是不是很好?

在使用 k 折交叉验证训练训练数据后如何测试数据?

交叉验证