K fold 和 Iterated K fold with shuffle 的区别

Was*_*med 4 python deep-learning

K 折验证:

在这种情况下,您将数据拆分为 K 个相同大小的分区。对于每个分区 i,在剩余的 K-1 个分区上训练一个模型,并在分区 i 上对其进行评估。

您的最终分数是所获得的 K 分数的平均值。当模型的性能显示出基于训练测试拆分的显着差异时,此方法很有用。

带洗牌的迭代 K 折验证:

这适用于可用数据相对较少且需要尽可能精确地评估模型的情况。

它包括多次应用 K 折验证,每次在将数据拆分 K 种方式之前对数据进行混洗。最终得分是每次运行 K 折验证时获得的得分的平均值

如果有人可以帮助显示 k 折和迭代 K 折之间的差​​异的示例代码或流程图,我无法理解实现迭代 k 折。

Ale*_*lex 5

值得一提的是,问题正文的前 3 段是对Francois CholletDeep Learning with Python 的第 4.2.1 章的文本摘要。不幸的是,作者没有更详细地解释带混洗迭代 K 折验证的概念。

我找到了这个解释,希望能让这个概念更清晰:

三重交叉验证步骤:

  1. 混洗数据
  2. 将您的数据分成 k = 3 段(又名折叠)
  3. 对于每个折叠:训练一个没有问题折叠的模型并在左边的折叠上进行测试
  4. 在完成所有 k = 3 折后,计算平均测试准确率(= 所有 3 折)

迭代 K 折交叉验证(又名重复 K 折交叉验证)将步骤 1-4 中描述的过程重复/迭代选定的次数(例如 100 次)。您现在有 100 个平均分数(每个分数都是重复应用步骤 1-4 的结果)。您取这 100 个分数的平均值,这个最终结果将代表您以稳健的方式获得的最终测试准确度,您的模型将被“尽可能精确地”评估。

它们主要区别K-倍验证和与改组迭代K-倍验证之间似乎是,在后者的步骤1-4在前者步骤1重复执行并且然后取平均值(表示最终的检验精确度),而-4 执行一次(不一定包括第 1 步),第 4 步获得的分数代表您最终的测试准确率。

感谢用户@cbeleites 支持 Monica,解释是从这里改编的。