1 votos

¿Cuántos modelos entrena realmente caret::trainControl()?

He buscado en CV y en la documentación de caret pero no he encontrado respuesta. Estoy utilizando caret en R para afinar algunos bosques aleatorios para clasificación entrenados usando ranger . He hecho una rejilla de ajuste que varía el número de variables muestreadas, mtry y el tamaño mínimo de los nodos, min.node.size en este conjunto de datos. Definí la cuadrícula de la siguiente manera:

mtry <- floor(sqrt(ncol(train_x)))

grid_rf <- expand.grid(
  .mtry = c(mtry/4, mtry/2, mtry, mtry*2, mtry*4),
  .splitrule = "gini",
  .min.node.size = c(1, 10, 20)
)

Así que esta cuadrícula debería producir 15 modelos. A continuación, establezco la función trainControl para utilizar el error fuera de bolsa, trainControl(method = "oob") . No hay repeticiones, porque el método no es de validación cruzada repetida. Así que yo sólo esperaría que se entrenaran 15 modelos y que se eligiera el modelo con menor error OOB. Sin embargo, mirando el "Growing trees.. Progress: X%" mensaje de progreso que imprime el guardabosques, puedo ver que ahora mismo está empezando a entrenar el 16º bosque aleatorio en lugar de detenerse, porque ya ha alcanzado el 100% 15 veces y está empezando a entrenar un nuevo bosque.

¿He entendido mal la función trainControl()? ¿Cuántos modelos se supone que debe entrenar?

Gracias por leer mi post.

1voto

Rob Van Dam Puntos 5073

Hay una formación adicional, la que produce finalModel el modelo entrenado en "todos los datos de entrenamiento utilizando el conjunto de parámetros óptimo" (paso final del algoritmo aquí ). Ahora bien, con la puntuación oob, en realidad no necesita volver a ajustar porque ya estaba utilizando todos los datos de entrenamiento, pero parece que caret no hace esa especialización (no veo ninguna excepción para la puntuación oob alrededor de esta parte del código, ya sea para train.default o train.recipe ).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X