我们如何使用R?
将数据分成两个训练集和一个测试集我尝试了这个,但我想将火车分成两组:
set.seed(770)
sample <- sample.int(n = nrow(datazoo), size = floor(0.75*nrow(datazoo)), replace = F)
train <- datazoo[sample, ]
test <- datazoo[-sample, ]
由于
答案 0 :(得分:0)
这是虹膜数据的一种方法,它有150行
data(iris)
来自所有行索引的第一列火车的样本:
t1 <- sample(1:nrow(iris), size = floor(0.4 * nrow(iris)))
来自未在t1中采样的行索引的第二列火车的样本:
t2 <- sample(setdiff(1:nrow(iris), t1), size = floor(0.4 * nrow(iris)))
剩下的一切都在t3中:
t3 <- setdiff(1:nrow(iris), c(t1,t2))
是真的吗:
any(t1 %in% t2)
any(t1 %in% t3)
any(t2 %in% t3)
或者您可以使用
library(caret)
将数据拆分为一列火车和测试集
t1 <- createDataPartition(iris$Species, p = 0.8)
将t1列车组分成两组:
t2 <- createDataPartition(iris$Species[t1$Resample1], p = 0.5)
t3 <- setdiff(t1, t2)
定义测试集:
t4 <- setdiff(1:nrow(iris), c(t2, t3))
第二种方法是首选方法,因为如果基于因子变量进行分割,则createDataPartition
进行分层分割,如果给出数字变量,则基于百分位进行分割。