Как отслеживать прогресс при построении модели с помощью пакета caret?

Я пытаюсь построить модель, используя функцию поезда из пакета caret:

 model <- train(training$class ~ .,data=training, method = "nb")

Учебный комплект содержит около 20 тыс. Наблюдений, каждое наблюдение имеет более 100 переменных. Я хотел бы знать, будет ли построение модели из этого набора данных длиться несколько часов или дней.

Как оценить время, необходимое для подготовки модели по данным? Как отслеживать прогресс процесса обучения при использовании функций из пакета caret?

Ответ 1

Предполагая, что вы обучаете модель

  • расширенная сетка параметров настройки (все комбинации параметров настройки)
  • и метод передискретизации по вашему выбору (перекрестная проверка, бутстрап и т.д.),

Вы можете установить

trainctrl <- trainControl(verboseIter = TRUE)

и установите его в аргументе trControl функции поезда для отслеживания прогресса обучения

model <- train(training$class ~ .,data=training, method = 'nb', trControl = trainctrl)

Это отображает прогресс на консоли на каждой стадии повторной выборки и позволяет оценить ход настройки обучения/параметров.

Чтобы оценить общее время работы, вы можете запустить модель один раз, чтобы узнать, как долго она работает, и оценить общее время, умножив соответственно на основе схемы повторной выборки и количества комбинаций параметров. Это можно сделать, снова установив trainControl и установив tuneLength в 1:

trainctrl <- trainControl(method = 'none')
model <- train(training$class ~ ., data = training, method = 'nb', trControl = trainctrl, tuneLength = 1)

Надеюсь это поможет! :)