将数据划分为培训、测试和验证-在R中拆分
我想将我的培训数据分为70%的培训、15%的测试和15%的验证。我正在使用插入符号包的将数据划分为培训、测试和验证-在R中拆分,r,machine-learning,classification,r-caret,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[ tr
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,]
在base 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,]
splitSample看看。其思想是使用createDataPartition()两次。第一次p=0.7以创建70%的列车和30%的剩余数据。第二次对剩余数据进行p=0.5,以创建15%的测试和15%的验证。进行两次拆分:(1)将原始数据拆分为培训和临时数据,(2)将临时数据拆分为测试和验证数据。复制日期:2017年8月:R>nrow(data.hex)[1]25192>nrow(train.hex)[1]8398>valid.hex nrow(valid.hex)[1]中现在有rsample
包8397>test.hex nrow(test.hex)[1]8397
但它们之间的差异只有1。这对吗?哎呀。忘记了大小参数。请注意,这是(准)随机的,因此大小大约等于0.7、0.15、0.15,但不完全相同。出于复制目的,您可能希望在第一行上方设置种子:set.seed(一些整数)
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,]