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

标签 r machine-learning mlr

假设我正在创建这样的学习曲线(代码中可能有小错误,这只是一个示例)。我想要的是一个经典的学习曲线,你可以扩大训练集,保持验证/测试集的大小相同。

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.

如何实现这一目标?

最佳答案

此问题的修复位于 this pull request ,应该很快就会合并。

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

enter image description here

关于R mlr - 从训练数据子集和整个测试数据(不是整个训练数据)创建学习曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40765180/

相关文章:

r - 创建循环图

python - Python/Scikitlearn 中的分类变量,无需 one-hot 编码

R 惰性评估- 不工作

在 foreach 循环中运行 h2o 算法?

python - 创建新的 Conda 环境时出现 PackageNotFoundError

python - Keras CNN 错误 : expected Sequence to have 3 dimensions, 但获得形状为 (500, 400) 的数组

r - 基于模型的优化(在 mlrMBO 中)需要多少次迭代?

r - R 的 mlr 包中 makeStackedLearner 的 super.learner

r - 运行mlr包中的predict()函数时出错

r - 如何使用 tidyverse 函数将一列的变量与其他列的数值相加