2

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

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

我相信这句话说明了一切:

请注意,当我们在训练数据的一个小子集上进行训练时,训练误差是使用这个子集计算的,而不是完整的训练集。

如何做到这一点?

4

2 回答 2

1

这个问题的修复在这个 pull request中,应该很快就会合并。

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

在此处输入图像描述

于 2016-11-27T06:37:20.723 回答
0

作为未来读者的参考,这将得到修复,这里是 github 问题

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

于 2016-11-26T15:52:52.603 回答