r语言 - 如何拆分数据 70:30 并在每次拆分数据时获取不同范围的数据



我目前正在使用R通过使用随机森林回归来进行特征选择。我想将我的数据拆分为 70:30,这很容易做到。但是,我希望能够执行此操作 10 次,每次 10 次获得与之前不同的一组示例。

> trainIndex<- createDataPartition(lipids$RT..seconds., p=0.7, list=F)
> lipids.train <- lipids[trainIndex, ]
> lipids.test <- lipids[-trainIndex, ]

这就是我目前正在做的事情,它非常适合 70:30 拆分我的数据。但是当我再次这样做时,我在训练集中得到相同的 70% 的数据,在我的测试数据中得到相同的 30% 的数据。我知道这就是createDataPartition的工作方式,但是有没有办法做到这一点,以便下次执行时获得不同的70%的数据?

谢谢

将来,请包括您正在使用的软件包,因为createDataPartition不在基本 R 中。我假设您使用的是caret包。 如果这是正确的,你找到times论点了吗?

trainIndex<- createDataPartition(lipids$RT..seconds., p=0.7, list=F, times=10)

如评论中所述,您可以简单地使用sample

sample(seq_along(lipids$RD..seconds), as.integer(0.7 * nrow(lipids)))

而且sample每次运行时都会选择一个不同的随机种子,所以你会得到不同的订单。

library(dplyr)
n <- as.integer(length(data[,1])*0.7)
data_70 <- data[sample(nrow(data),n), ]
data_30 <- anti_join(data, data_70)

最新更新