我有一个包含参与者多个观察结果的数据集。参加者用id
表示。为了在交叉验证过程中解决此问题,我将blocking = factor(id)
添加到makeClassifTask()
,并将blocking.cv = TRUE
添加到makeResampleDesc()
。但是,如果我将id
留在数据集中,它将用作预测变量。我的问题是:如何正确使用阻止?我的想法是创建一个新变量,例如participant.id
(在数据集外部),然后从原始数据集中删除id
,然后使用blocking = factor(participant.id)
,但是我不确定这是否是处理阻塞的正确方法。
答案 0 :(得分:3)
除了提供blocking
的变量外,您还可以提供一个自定义因子向量来指定属于一起的观测值。这也显示在tutorial中。
这样,您无需在数据集中包含变量“ participant.id”。
还请确保您确实要使用“阻止”。您已经看过“分组”了吗?链接的教程部分也介绍了两者之间的区别。