R mlr - 从训练数据的子集和整个测试数据(不是整个训练数据)创建学习曲线?

R mlr - Creating learning curve from subset of training data and whole test data (not whole training data)?

假设我正在创建这样的学习曲线(代码中可能存在一些小错误,这只是一个示例)。我想要的是一个经典的学习曲线,您可以在其中扩大训练集,保持 validation/test 集大小相同。

learningCurve <- generateLearningCurveData("regr.glmnet",
                                           bh.task,
                                           makeResampleDesc(method = "cv", iters = 5, predict = "both"),
                                           seq(0.1, 1, by = 0.1),
                                           list(setAggregation(auc, train.mean), setAggregation(auc, test.mean))
)

上面代码的问题在于,学习者确实是在训练数据的一部分上训练的,但是 auc.train.mean 度量是在 整个 训练集上进行评估的.这导致并不是我真正想要的学习曲线。我希望这个度量来评估用于学习的训练集部分的性能,如下所示:

http://www.astroml.org/sklearn_tutorial/practical.html#learning-curves

我相信这句话可以说明一切:

Note that when we train on a small subset of the training data, the training error is computed using this subset, not the full training set.

如何实现?

作为未来读者的参考,这将得到解决,这是 github 问题

https://github.com/mlr-org/mlr/issues/1357

此问题的修复在 this pull request 中,应尽快合并。

修复到位后,我在评论中得到了完整示例的以下学习曲线: