Сколько времени занимает операция rfe в R?

#r #rfe

#r #rfe

Вопрос:

Я написал этот код

 library(caret)

set.seed(100)
options(warn=-1)

subsets <- c(1:5, 10, 15, 18)

ctrl <- rfeControl(functions = rfFuncs,
                   method = "repeatedcv",
                   repeats = 5,
                   verbose = FALSE)

lmProfile <- rfe(x=train_clean[trainIndex,], y=train_clean_price$SalePrice[trainIndex],
                 sizes = subsets,
                 rfeControl = ctrl)
  

train_clean содержит 80 переменных и 1200 строк.
это продолжается уже 30 минут
Как узнать, сколько времени займет выполнение кода?

Ответ №1:

Во-первых, некоторые рекомендации, когда дело доходит до выяснения, где или почему код R требует времени для выполнения.
Ознакомьтесь Rprof с инструментом профилирования в utils пакете. Это покажет вам точно, сколько времени занимает каждый вызов (функция). Затем вы могли бы попробовать использовать пакет microbenchmark .

Но, наконец, и, вероятно, самое важное, когда вы обнаружите, что ждете завершения целую вечность, завершите процесс и начните снова с наименьшего возможного подмножества ваших входных данных. Например, попробуйте настроить mini_train <- train_clean[1:5,] и посмотрите, что произойдет… или даже mini_train <- train_clean[1:5,1:20] . Примечание: я предполагаю, что ваши «80 переменных и 1200 строк» означают, что это массив данных размером 1200 на 80.