Holdout检验
Holdout检验是最简单也是最直接的验证方法,它将原始的样本随机划分成训练机和验证集两部分,通常情况下我们把样本按照70%-30%的比例分成两部分,70%用于模型的训练,30%用于模型的验证,包括绘制ROC曲线,计算精确率和召回率等指标来评估模型性能。
同时Holdout的缺点也很明显,即在验证集上计算出来的最后评估指标与原始的分组有很大关系,为了消除这种验证的随机性“交叉验证”出现了。
交叉验证
交叉验证是很常用的一种检验方法,常见的种类有k-fold交叉验证(K折交叉验证)和留一验证。
- K-fold交叉验证
首先将全部的样本划分成K个大小相等的子集;依次遍历这K个样本,每次将遍历到的样本当作验证集,其余的样本作为训练集来进行模型的训练和评估,最后把他们的平均值作为最终的评估指标,通常情况下我们会将K的取值定为10。
- 留一验证
每次留下一个样本作为验证集,其余所有样本作为测试集,样本的总数为n依次对n个样本进行遍历,进行n次验证,再将评估指标求得平均值得到最终的评估指标。
自助法
对于样本数量比较小的数据集,上述的方法(即便是留一法)会让训练集的数目减少,从而导致训练后的模型出现很大的误差影响了模型的结果。自助法能够比较好的解决这个问题。
自助法是基于自助采样法的一个检验方法,对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集,在我们进行n次采样的过程中,有些样本会被重复采样,有些样本还没有被抽取过,我们将没有抽取的样本作为测试集进行模型的验证,这就是自助法的主要思想。