如果我们想让同一组的行属于同一个拆分,如何使用 dplyr 拆分 R 中的数据?

数据挖掘 r 数据清理 dplyr
2022-03-03 00:23:16

在我目前的管道中,我已经感觉到有数据泄漏。这是因为同一个人,尽管值略有不同,但同时在训练和测试集中。结果,我的模型过度拟合。

例如,我的数据如下所示:

PID       Var_1   Var_2
Person A     0      1
Person B     0      1
Person C     0      0
Person A     1      3
Person B     1      2
Person D     0      1 
Person C     0      1    

我想拆分这些数据,以便同一个人的行将在训练或测试集中,即我希望拆分看起来像这样:

训练:

PID       Var_1   Var_2
Person A     0      1
Person B     0      1
Person A     1      3
Person B     1      2    

测试:

PID       Var_1   Var_2
Person C     0      0
Person D     0      1  
Person C     0      1   

1个回答

想出了一个简单的方法来做到这一点。

  1. 首先,我们将从真实数据中选择 PID。
  2. 然后我们将只对这些 PID 中的 0.75% 进行采样,并将这些点保存为训练 PID,其余的保存为测试 PID。
  3. 我们将使用 PID 找到该列表与实际数据之间的交集。