¿Cómo encontrar valores óptimos para los parámetros de ajuste en el impulso de árboles?

9

Me doy cuenta de que hay 3 parámetros de ajuste en el modelo de árboles de refuerzo, es decir

  1. El número de árboles (número de iteraciones)
  2. parámetro de contracción
  3. Número de divisiones (tamaño de cada árbol constituyente)

Mi pregunta es: para cada uno de los parámetros de ajuste, ¿cómo debo encontrar su valor óptimo? Y que metodo?

Tenga en cuenta que: el parámetro de contracción y el parámetro de número de árboles operan juntos, es decir, un valor menor para el parámetro de contracción conduce a un valor más alto para el número de árboles. Y también debemos tener esto en cuenta.

Estoy particularmente interesado en el método para encontrar el valor óptimo para el número de divisiones. ¿Debería basarse en la validación cruzada o el conocimiento del dominio sobre el modelo detrás?

¿Y cómo se llevan a cabo estas cosas en el gbmpaquete en R?

mi nombre es Jeff
fuente

Respuestas:

6

El paquete caret en R está hecho a medida para esto.

Su función de tren toma una cuadrícula de valores de parámetros y evalúa el rendimiento utilizando varios tipos de validación cruzada o bootstrap. El autor del paquete ha escrito un libro, Modelado predictivo aplicado , que es muy recomendable. Se utilizan 5 repeticiones de validación cruzada 10 veces en todo el libro.

Para elegir la profundidad del árbol, primero buscaría el conocimiento de la materia sobre el problema, es decir, si no espera ninguna interacción, restrinja la profundidad a 1 o elija un modelo paramétrico flexible (que es mucho más fácil de entender e interpretar). Dicho esto, a menudo me encuentro ajustando la profundidad del árbol ya que el conocimiento de la materia a menudo es muy limitado.

Creo que el paquete gbm ajusta el número de árboles para valores fijos de la profundidad y contracción del árbol.

ErikL
fuente
¿El libro incluye el código R también?
user1769197
Me refiero a un ejemplo trabajado que incluye código R para que comprendamos cómo los modelos se implementan computacionalmente y se aplican en un conjunto de datos
usuario1769197
1
Si lo hace Echa un vistazo a la página web del libro applypredictivemodeling.com para obtener más información.
ErikL
1

Hay dos buenas fuentes para los árboles de regresión potenciados y el paquete gbm. Para la explicación de BRT y la optimización de la cantidad de árboles ( nt), la tasa de aprendizaje ( lr) y la complejidad de los árboles ( tc), vea Una guía de trabajo para árboles de regresión potenciados. Aunque se está centrando en la ecología, creo que no encontrará una mejor introducción a BRT .

Para la implementación de BRT en el paquete gbm, vea Árboles de regresión potenciados para modelos ecológicos

En resumen, una regla general es seleccionar una tasa de aprendizaje que permita que el modelo BRT se ajuste al menos a 1000 árboles, por lo que probablemente necesitará una tasa de aprendizaje baja, tal vez 0.001 para lograrlo. Pero depende del tamaño de sus datos, vea la fig. 2 y 3 en la Guía de trabajo para BRT. Creo que una forma posible sería configurar diferentes modelos en BRT de acuerdo con su tamaño de datos, por ejemplo, combinar diferentes lr (0.1, 0.01, 0.001), tc (1, 3, 5, 7, 9, 20) con una bolsa diferente .fracciones (0.5, 0.7, 0.9) y elija la mejor según la desviación más baja o la puntuación ROC más alta. Quizás ayudó.

usuario3624251
fuente
1
Como referencia, BRT_MODEL$self.statistics$correlation[[1]]es la correlación de las pruebas con los datos de entrenamiento, que es una buena métrica de prueba.
dez93_2000
Suena como un diseño estadístico de experimento para mí. : P
EngrStudent