1.随机采样sample()—例:iris数据
sample(x, size, replace = FALSE, prob = NULL)
Index = sample(nrow(iris),size = nrow(iris)*0.8)
trian_data = iris[Index,] #作为训练集
test_data = iris[-Index,] #作为测试集
类似的还有dplyr包中的sample_n
函数
> sample_n(tbl, size, replace = FALSE, weight = NULL, .env = NULL)
2. carte包–createDatePartition 来进行分区抽样
inTrain =createDataPartition(响应变量y ,p=0.8,list=FALSE)
- inTrain : 产生对应数据集行的索引
- y 要分类或预测的变量,
p 对应y的数据个数的概率
3. dplyr::sample_frac()函数
sample_frac(tbl, size = 1, replace = FALSE, weight = NULL, .env = NULL)
sample_frac(iris, 0.5, replace = TRUE):随机选取部分数据(占总体的0.5)记录。
library(dplyr)
train_data = sample_frac(iris, 0.8)#这里直接选取了iris数据集中的0.8的部分,假设作为训练集
test_data = setdiff(iris,train_data)#用差集 把test数据挑选出来
4 . caTools::sample.split()函数
library(caTools)
Index = sample.split(iris[,5],SplitRatio = 0.8)
train_data = subset(iris,Index==TRUE)
test_data = subset(iris,Index==FALSE)
5. scorecard::split_df()函数
library(scorecard)
data_list = split_df(iris,ratio = 0.8)
train_data = data_list$train
test_data = data_list$test
6. 交叉验证数据
library(caret)
folds = createFolds(iris$Species,k=10)
str(folds)
train= iris[-folds$Fold01,]
test =iris[folds$Fold01,]