好在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)