mlr - 在具有主题 ID 的 MLR 中阻止交叉验证

标签 mlr

我有一个数据集,其中包含参与者的多个观察结果。参与者由id表示。为了在交叉验证过程中考虑到这一点,我将 blocking = Factor(id) 添加到 makeClassifTask() 并将 blocking.cv = TRUE 添加到makeResampleDesc()。但是,如果我将 id 留在数据集中,它将用作预测变量。我的问题是:如何正确使用阻塞?我的做法是创建一个新变量,例如participant.id(数据集外部),接下来从原始数据集中删除 id,然后使用 blocking = Factor(participant.id),但我不确定这是否是处理阻塞的正确方法。

最佳答案

您可以提供一个自定义因子向量来指定属于一起的观测值,而不是提供用于阻塞的变量。这也显示在 tutorial 中。

这样您就不需要在数据集中包含变量“participant.id”。

还要确保您确实想要使用“阻止”。您已经看过“分组”了吗?链接的教程部分也描述了两者之间的差异。

关于mlr - 在具有主题 ID 的 MLR 中阻止交叉验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56078958/

相关文章:

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

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

r - 基准实验中使用的学习器的特征重要性 - MLR

r - mlr:为什么使用并行化时超参数调优的再现性会失败?

r - mlr 包 : Cross-validation with tuneParams() and resample() yield different results

R 包 mlr 耗尽多核内存

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

R:使用 regr.svm 任务在 mlr 中使用新因子水平进行预测

r - 没有默认值的错误 : argument "x" is missing,?

r - mlr - 集成模型