交叉验证

交叉验证(Cross Validation)是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。

1.训练-测试

avatar
调参过程围绕测试数据集,也有可能会出现过拟合现象。
如何解决?

2.训练-验证-测试

avatar
  训练数据训练好模型后,将验证数据集喂入模型,调整参数,找到对验证数据集来说最优的超参数。测试数据不参与训练,仅衡量模型的好坏。
但是,验证数据集也可能有极端数据,也会导致模型不准确。
如何解决?

3.交叉验证

交叉验证,顾名思义,将数据分成K份,每份都参与训练和验证。
avatar
K一般取3,5,10。
交叉验证一般要尽量满足:
1)训练集的比例要足够多,一般大于一半
2)训练集和测试集要均匀抽样

k-folds交叉验证

  k个子集,每个子集均做一次测试集,其余的作为训练集。交叉验证重复k次,每次选择一个子集作为测试集,并将k次的平均交叉验证识别正确率作为结果。
  优点:所有的样本都被作为训练集和测试集,每个样本都被验证一次。10-folder通常被使用。
  缺点:训练k个模型,整体慢k倍。

留一法(loo-cv,least-one-out cross-validation)

  n个样本,就分成n份,那LOOCV也就是n-CV,意思是每个样本单独作为一次测试集,剩余n-1个样本则做为训练集。
  优点:接近母体,最接近分布,可靠。
  缺点:训练计算量巨大。