将数据分区创建为培训,测试和验证 - 在R中分割

时间:2016-04-07 16:48:05

标签: r machine-learning classification r-caret

我想将我的训练数据分成70%的训练,15%的测试和15%的验证。我正在使用插入符号包的createDataPartition()函数。我正如以下

分裂它
train <- read.csv("Train.csv")
test <- read.csv("Test.csv")

split=0.70
trainIndex <- createDataPartition(train$age, p=split, list=FALSE)
data_train <- train[ trainIndex,]
data_test <- train[-trainIndex,]

有没有办法像以下createDataPartition()方法一样使用H2o分割到培训,测试和验证中?

data.hex <- h2o.importFile("Train.csv")
splits <- h2o.splitFrame(data.hex, c(0.7,0.15), destination_frames = c("train","valid","test"))
train.hex <- splits[[1]]
valid.hex <- splits[[2]]
test.hex  <- splits[[3]]

2 个答案:

答案 0 :(得分:5)

在基础R中使用sample()函数的方法是

splitSample <- sample(1:3, size=nrow(data.hex), prob=c(0.7,0.15,0.15), replace = TRUE)
train.hex <- data.hex[splitSample==1,]
valid.hex <- data.hex[splitSample==2,]
test.hex <- data.hex[splitSample==3,]

答案 1 :(得分:0)

看看train,validation, test split model in CARET in R。这个想法是使用createDataPartition()两次。第一次p = 0.7以创建70%的训练和30%的剩余数据。对剩余数据进行第二次p = 0.5,以创建15%的测试和15%的验证。