我目前正在使用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)