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