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

时间:2019-05-10 13:45:03

标签: mlr

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

1 个答案:

答案 0 :(得分:3)

除了提供blocking的变量外,您还可以提供一个自定义因子向量来指定属于一起的观测值。这也显示在tutorial中。

这样,您无需在数据集中包含变量“ participant.id”。

还请确保您确实要使用“阻止”。您已经看过“分组”了吗?链接的教程部分也介绍了两者之间的区别。