原文链接:
R Tip:数据集划分为训练集和测试集?-数据人网www.shujuren.org问题背景:我们构建数据模型的时候,需要把数据集划分为训练集和测试集,训练集用来训练模型,测试集用来测试模型的泛化能力。本文总结R语言如何把数据集划分为训练集和测试集?
解决方案
结合实际工作,罗列4中解决方案。
1 使用smaple()函数
代码片段如下:
data <- read.csv("raw_data/data.csv")
set.seed(20180808)
index <- sort(sample(nrow(data), nrow(data)*.7))
train <- data[index,]
test <- data[-index,]
2 使用caret包
代码片段如下:
library(caret)
data <- read.csv("raw_data/data.csv")
set.seed(20180808)
index <- createDataPartition(
data$y,
p = 0.7,
list = FALSE
)
train <- data[index, ]
test <- data[-index, ]
3 使用caTools包
代码片段如下:
library(caTools)
data <- read.csv("raw_data/data.csv")
set.seed(20180808)
index <- sample.split(data$y,SplitRatio = 0.3)
train <- subset(data, index == TRUE)
test <- subset(data, index == FALSE)
4 使用scorecard包
代码片段如下:
library(scorecard)
data <- read.csv("raw_data/data.csv")
set.seed(20180808)
data_list <- split_df(data, ratio = 0.7)
train <- data_list$train
test <- data_list$test