交叉验证的3种方法
利用验证集来评估模型效果,调整超参数的过程称之为交叉验证,有以下3种常用的策略
1. hand-out cross validation
称之为留出法,将收集到的数据集,按照一定的比例,事先划分训练集,验证集,测试集3种,图示如下
对于几万量级的数据集,通常的划分比例是60%, 20%, 20%; 对于百万样本以上的数据集,只需要保证验证集和测试集的样本足够即可,其他的样本都可以作为训练集,比如验证集和测试集。
2. leave-one-out cross validation
简称LOOCV,叫做留一法,对于样本总数为N的数据集,进行N次迭代,每次都只保留一个样本作为测试集,剩余的作为训练集,示意如下
在留一法中,需要迭代N次,在留p法中,则是一个排列组合的问题,迭代次数的公式如下
迭代的次数大于留一法。
3. k fold cross validation
称之为K折交叉验证,K指定了迭代的次数,示意如下
将数据集均匀划分为k个子集,每次迭代,使用一个子集作为测试集,其他的作为训练集。LOOCV也可以看做是K折交叉验证的一个特例,K等于样本总数N。对于得到的k个模型,从其中挑选误差最小的作为最终的模型。
对于机器学习而言,训练集上的误差叫做训练误差,测试集上的误差叫做泛化误差。所谓过拟合,就是训练误差很小,但是泛化误差很大。交叉验证的方法同时评估训练误差和泛化误差,可以有效避免过拟合。
赞 (0)