一个模型的好坏终归还是需要一个客观的评价标准,但是现有标准都比较难以适用于单次评估,毕竟单次评估过于具有偶然性,这个问题的解决方法就是多训练几次模型,综合评估一下。
但是训练模型总不能,在相同的数据集上,一直运行,一直评估。一个比较好的解决方法就是对数据集进行不同的划分,然后多训练几个模型,最后指标综合一下。这篇文章整理一下机器学习中数据集划分的方法,当然划分的主要目的还是为了多方面的评估模型。
划分数据集的过程中主要目的就是为了把数据划分为不同的训练集和测试集,一般文献中也会将验证集隐含在训练集中,两者都是在训练过程中使用的。数据集选择的过程中有几点要求需要遵循。
- 训练集应尽可能的与测试集互斥
- 一定程度上,要保持训练和测试数据分布的一致性,这样有利于模型学习
如果数据的采样过程中,想要保留类别比例,也就是说把每一个类别的数据作为采样单元,这样的采样方式就称为分层采样了。以下介绍几种基础的数据集选择方式。
留出(Hold-out)法
直接将数据集D划分为两个互斥的集合,分别作为训练集和测试集。不同的划分能够导致不同的效果,因此单次使用留出法得到的估计结果往往不够可靠稳定,一般采用若干次随机划分, 重复试验之后取平均值作为评估结果。
因为数据集被分成了数据集和测试集,这就导致了使用训练集训练的模型与整个数据集有差异。通常需要对S(训练集)和T(测试集)的比例进行权衡,一般使用 2 3 到 4 5 \frac{2}{3}到\frac{4}{5} 32到