如何从交叉验证数据创建学习曲线?

How to create learning curve from cross-validated data?

我有一个使用 10 折交叉验证的算法。在训练集中,我先使用其中一个折叠来验证训练模型,然后再使用预留的折叠上的学习模型进行测试。

我想创建一个学习曲线,这意味着我需要改变训练集的大小。这是否意味着我还要改变验证集的大小以及训练数据?这是否意味着我也需要更改测试集的大小(训练和验证折叠之外的折叠)?

10 折交叉验证 的工作原理是将标记数据的训练集分成 10 个大小相等的子集。其中 9 个子集组合成新的训练集,剩下的 1 个子集用于 validation/testing,即模型在 90% 的原始训练集上训练,在 10%.

上测试

这在 10 个子集中的每个子集中执行 10 次(折叠),因此每个子集都用于测试。对每次迭代执行测试的性能测量,并在所有迭代完成后计算平均值。

没有所谓的"training fold"或"testing fold",折叠是过程的迭代。在此过程中也没有保留子集,每次迭代都会使用所有子集。

要创建您正在谈论的学习曲线,您可以简单地改变原始训练集的大小并让 10 折交叉验证过程 运行事实上。原始训练集中的记录数是您对训练集大小的度量,性能是交叉验证完成后的给定平均值。