У меня есть некоторый код R, в котором я разбил данные изображения на набор для обучения и проверки для задачи классификации машинного обучения. Это сработало просто отлично, но теперь мне нужно добавить окончательный набор тестов. Теперь я получаю сообщение об ошибке, но не уверен, что не так.
Вот код, который я пробовал и работал:
image_subset <-
cbind(file_paths = image_names_subset$file_paths, y_subset) %>%
mutate(file_paths = as.character(file_paths))
y_cols <- colnames(y_subset)
subset_output_classes <- y_cols
train_val_split <- 0.70
train_image_rows <-
sort(sample(nrow(image_subset), train_val_split * nrow(image_subset)))
val_image_rows <-
which(!(seq(1, nrow(image_subset)) %in% train_image_rows))
image_subset_train <-
image_subset[train_image_rows, ]
image_subset_val <-
image_subset[-train_image_rows, ]
image_subset <-
cbind(file_paths = image_names_subset$file_paths, y_subset) %>%
mutate(file_paths = as.character(file_paths))
y_cols <- colnames(y_subset)
subset_output_classes <- y_cols
train_val_split <- 0.60
#Added, want to be able to split the remaining 40% of data in 1/2 for validation and test sets
val_test_split <- 0.50
train_image_rows <-
sort(sample(nrow(image_subset), train_val_split * nrow(image_subset)))
# Added
val_image_rows <-
which(!(seq(1, nrow(image_subset)) %in% train_image_rows))
# Error occurs here when I run this command
test_image_rows <- sample(nrow(val_image_rows), val_test_split * nrow(val_image_rows))
val_image_rows2 <- which(!(seq(1, nrow(val_image_rows)) %in% test_image_rows))
Ожидается 60% строк из image_subset для заполнения train_image_rows. Это сработало
Я ожидал, что оставшиеся 40% строк заполнят val_image_rows. Это также сработало
Я получаю сообщение об ошибке при попытке разделить набор тестов для заполнения test_image_rows:
Error in sample.int(length(x), size, replace, prob) :
invalid 'size' argument