我有一个数据集,其中包含参与者的多个观察结果。参与者由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/