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 问题
此问题的修复在 this pull request 中,应尽快合并。
修复到位后,我在评论中得到了完整示例的以下学习曲线:
假设我正在创建这样的学习曲线(代码中可能存在一些小错误,这只是一个示例)。我想要的是一个经典的学习曲线,您可以在其中扩大训练集,保持 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 问题
此问题的修复在 this pull request 中,应尽快合并。
修复到位后,我在评论中得到了完整示例的以下学习曲线: