拆分数据集以测试和训练 R 中的随机森林模型集?

Splitting dataset to test and train set in R for random forest model?

我正在为一个医学预测项目开发随机森林模型。我正在使用的数据集包含患者的信息,包括特征、诊断和患者 ID(每个患者都是唯一的)。现在,我希望根据患者(即随机 select 患者)拆分数据集,而不是仅根据比例(即 75% 的数据进行训练,25% 的数据进行测试)拆分数据集,同时满足“75% 用于训练,25% 用于测试”比例。任何人都可以帮助提供一些关于如何实现这一目标的想法吗?提前致谢!

您可以使用包 rsample 中的 initial_split。在此示例中,列 am 用作层(在您的情况下它将是您的患者 ID):

library(tidyverse)
library(rsample)

my_split <- initial_split(mtcars, strata = am)

train_data <- training(my_split)
test_data <- testing(my_split)

# Original data
mtcars %>%
  count(am) %>%
  mutate(prop = n/sum(n))

  am  n    prop
1  0 19 0.59375
2  1 13 0.40625

# training data
train_data %>%
  count(am) %>%
  mutate(prop = n/sum(n))

  am  n prop
1  0 15  0.6
2  1 10  0.4