好在R和Python中有现成的数据集分割函数,避免手动写函数导致划分比例不合理、训练集与测试集的样本的结构与总体不均衡的问题。
R语言中caTools包中的sample.split函数可以用来自动将原始数据集分割成训练集和测试集。
方法一 caTools中的sample.split函数
install.packages("caTools") library("caTools") set.seed(123) data(iris) table(iris$Species) split = sample.split(iris$Species,SplitRatio = .8) train_data = subset(iris,split == TRUE) test_data = subset(iris,split == FALSE) table(train_data$Species) table(test_data$Species)
划分方法二——createDataPartition函数
library("caret") split1 <- createDataPartition(y=iris$Species,p=0.8,list = FALSE) train_data <- iris[split1,] table(train_data$Species) test_data <- iris[-split1,] table(test_data$Species)