¿Cuáles son algunas pautas útiles para los parámetros de GBM?

31

¿Cuáles son algunas pautas útiles para probar parámetros (es decir, profundidad de interacción, minchild, frecuencia de muestreo, etc.) usando GBM?

Digamos que tengo 70-100 características, una población de 200,000 y tengo la intención de probar la profundidad de interacción de 3 y 4. Claramente, necesito hacer algunas pruebas para ver qué combinación de parámetros se sostiene mejor fuera de la muestra. ¿Alguna sugerencia sobre cómo abordar este diseño de prueba?

Ram Ahluwalia
fuente

Respuestas:

34

El paquete caret puede ayudarlo a optimizar la elección de parámetros para su problema. La viñeta caretTrain muestra cómo ajustar los parámetros de gbm utilizando la validación cruzada repetida 10 veces; hay otros enfoques de optimización disponibles; todos pueden ejecutarse en paralelo con el paquete foreach. Use vignette("caretTrain", package="caret")para leer el documento.

La afinación soportes del paquete shrinkage, n.treesy interaction.depthparámetros para el modelo GBM, aunque se puede añadir su propia.

Para la heurística, este es mi enfoque inicial:

shrinkage: Tan pequeño como tenga tiempo (el manual de gbm tiene más información sobre esto, pero en general nunca puede salir mal con un valor menor). Su conjunto de datos es pequeño, por lo que probablemente comenzaría con 1e-3

n.trees: Por lo general, crezco un modelo inicial agregando más y más árboles hasta que gbm.perfdice que tengo suficiente (en realidad, típicamente a 1.2 veces ese valor) y luego lo uso como guía para un análisis más detallado.

interaction.depth: ya tienes una idea sobre esto. Pruebe valores más pequeños también. El valor máximo es floor (sqrt (NCOL (datos)).

n.minobsinnode: Encuentro realmente importante ajustar esta variable. No quiere que sea tan pequeño que el algoritmo encuentre demasiadas características espurias.

Allan Engelhardt
fuente