假设我正在创建这样的学习曲线(代码中可能存在小错误,这只是一个示例)。我想要的是一条经典的学习曲线,你可以在其中扩大训练集,保持验证/测试集的大小相同。
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
我相信这句话说明了一切:
请注意,当我们在训练数据的一个小子集上进行训练时,训练误差是使用这个子集计算的,而不是完整的训练集。
如何做到这一点?