交叉验证:重复 K 折/组 K 折

数据挖掘 交叉验证
2022-02-12 16:09:52

重复 K 折与组 K 折

根据我对 sklearn 文档的理解

重复 K 折:

RepeatedKFold 重复 K-Fold n 次。当需要运行 KFold n 次时,可以使用它,在每次重复中产生不同的拆分。

重复分层 K 折交叉验证器:

在每次重复中使用不同的随机化重复分层 K 折叠 n 次。

K折组:

GroupKFold 是 k-fold 的一种变体,可确保同一组在测试和训练集中都没有出现。

  • 有人可以详细解释一下,什么时候会使用重复 K 折而不是组 k 折?
  • 使用重复 K-Fold 与 Group k-fold 相比有哪些优点/缺点?
1个回答

组 k-fold 足够专业,以至于您要求的比较实际上没有意义。“重复”确实只是意味着多次重新制作拆分;您可以轻松制作“重复组 k 折”拆分器。

当您有不想在训练集和测试集之间拆分的组时,您可以使用组 k 折叠。例如,如果您的数据包含每个客户的多行(但对单个事务/行进行训练仍然有意义),并且您的生产用例涉及对客户进行预测,然后对来自同样有行的客户的行进行测试在您的训练集中可能存在乐观偏见。

当数据和模型具有高可变性并且您需要更多性能数据点来做出统计上合理的陈述时,您可以使用重复的 XYZ。(这可能是当你的数据集很小的时候,在这种情况下,你的模型构建应该更快,这样你就可以承受多次重复交叉验证过程的计算成本。)

https://scikit-learn.org/stable/auto_examples/model_selection/plot_cv_indices.html
特别是。图片:( 但现在我希望看到一个小组不与这样的班级排队......)
sklearn docs 组 k 折的可视化