python - K 折叠和带洗牌的迭代 K 折叠之间的区别

标签 python deep-learning

K-FOLD 验证:

在此,您将数据分成 K 个大小相等的分区。对于每个分区 i,在剩余的 K – 1 个分区上训练模型,并在分区 i 上对其进行评估。

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

使用改组进行迭代 K 折验证:

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

它包括多次应用 K 折验证、洗牌 每次将数据拆分为 K 种方式之前。最终成绩为各组的平均分 每次运行 K 倍验证时获得的分数

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

最佳答案

值得一提的是,问题正文的前3段是Deep Learning with Python by Francois Chollet第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获得的分数代表您最终的测试准确性。

该解释密切改编自 here感谢用户 @cbeleites supports Monica

关于python - K 折叠和带洗牌的迭代 K 折叠之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53353785/

相关文章:

tensorflow - Luong 注意力和 Bahdanau 注意力有什么区别?

python - Fasttext .vec 和 .bin 文件之间的区别

python - CNTK:定义自定义损失函数(Sørensen-Dice 系数)

python - 使用 python 提交到 web 表单

python - 使用 json.dumps() 时出现 UnicodeDecodeError

python - 如何在 XLWings 中卡住 Pane

python - 使用 sys.exit() 终止 python 线程

Python正则表达式排序问题

python - 具有keras和多个序列的时间序列预测

python - Tensorflow Inception V3 无法加载计算图