使用主题 id 在 mlr 中阻止交叉验证
Blocking in cross validation in mlr with subject id
我有一个包含参与者多次观察的数据集。参与者用 id
表示。为了在交叉验证过程中考虑到这一点,我将 blocking = factor(id)
添加到 makeClassifTask()
并将 blocking.cv = TRUE
添加到 makeResampleDesc()
。但是,如果我在数据集中保留 id
,它将用作预测变量。我的问题是:如何正确使用阻塞?我的做法是创建一个新变量,例如participant.id
(数据集外),然后从原始数据集中删除 id
,然后使用 blocking = factor(participant.id)
,但我不确定这是否是处理阻塞的正确方法。
无需为 blocking
提供变量,您可以提供一个自定义因子向量来指定属于一起的观察值。这也显示在 tutorial 中。
这样您就不需要在数据集中包含变量 "participant.id"。
还要确保您确实要使用 "blocking"。您已经看过 "grouping" 了吗?两者之间的区别也在链接的教程部分中进行了描述。
我有一个包含参与者多次观察的数据集。参与者用 id
表示。为了在交叉验证过程中考虑到这一点,我将 blocking = factor(id)
添加到 makeClassifTask()
并将 blocking.cv = TRUE
添加到 makeResampleDesc()
。但是,如果我在数据集中保留 id
,它将用作预测变量。我的问题是:如何正确使用阻塞?我的做法是创建一个新变量,例如participant.id
(数据集外),然后从原始数据集中删除 id
,然后使用 blocking = factor(participant.id)
,但我不确定这是否是处理阻塞的正确方法。
无需为 blocking
提供变量,您可以提供一个自定义因子向量来指定属于一起的观察值。这也显示在 tutorial 中。
这样您就不需要在数据集中包含变量 "participant.id"。
还要确保您确实要使用 "blocking"。您已经看过 "grouping" 了吗?两者之间的区别也在链接的教程部分中进行了描述。