Я вижу много кодов R, в которых полный набор данных сначала разбивается на обучающий набор и тестовый набор:
library(caret)
library(klaR)
# load the iris dataset
data(iris)
# define a 80%/20% train/test split of the dataset
trainIndex <- createDataPartition(iris$Species, p=0.8, list=FALSE)
data_train <- iris[trainIndex,]
data_test <- iris[-trainIndex,]
Во второй раз определяется метод разбиения, такой как повторная перекрестная проверка в k-кратном размере:
train_control <- trainControl(method="repeatedcv", number=10, repeats=3)
Затем модель обучается с использованием учебного набора:
my_model <- train(Species~., data=data_train, trControl=train_control, method="nb")
Наконец, на тестовом наборе выполняются прогнозы:
pred_results <- predict(my_model, newdata=data_test)
При использовании, в частности, (повторного) метода перекрестной проверки в k-кратном порядке, мне кажется, что обучающий (n = k-1 сгиб) и тестовый (n = 1-кратный) наборы уже изначально определены.
В таком случае, зачем добавлять дополнительный слой раздела, разбивая сначала полный набор данных на 80% обучающих и 20% тестовых наборов? Это необходимо?