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.