Elección del parámetro de complejidad en CART

16

En la rutina rpart () para crear modelos CART, usted especifica el parámetro de complejidad al que desea podar su árbol. He visto dos recomendaciones diferentes para elegir el parámetro de complejidad:

  1. Elija el parámetro de complejidad asociado con el mínimo error posible de validación cruzada. Quick-R y HSAUR recomiendan este método .

  2. Elija el parámetro de mayor complejidad cuyo error de validación cruzada estimado aún se encuentra dentro de un SE del mínimo error de validación cruzada posible. Esta es mi interpretación de la documentación del paquete, que dice: "Una buena elección de cp para la poda es a menudo el valor más a la izquierda para el cual la media se encuentra debajo de la línea horizontal" en referencia a este gráfico .

Las dos opciones de cp producen árboles bastante diferentes en mi conjunto de datos.

Parece que el primer método siempre producirá un árbol más complejo y potencialmente sobreajustado. ¿Existen otras ventajas, desventajas, recomendaciones en la literatura, etc. que debo tener en cuenta al decidir qué método usar? Puedo proporcionar más información sobre mi problema de modelado particular si eso fuera útil, pero estoy tratando de mantener esta pregunta lo suficientemente amplia como para que sea relevante para los demás.

medio paso
fuente
¿Qué representa la línea horizontal en el diagrama?
Bogdanovist
Creo que representa 1 SE por encima del mínimo error de validación cruzada posible.
medio pase el
Si tiene suficientes datos, puede intentar separarlos en un conjunto de datos de entrenamiento y prueba, incluso para árboles. Esto puede ser especialmente útil si está interesado principalmente en la predicción, ya que el conjunto de datos de prueba le dará una buena estimación. Otra opción es el partypaquete que utiliza pruebas de significación (generalmente no es algo que recomiendo, pero parece relevante aquí). Sin embargo, como siempre, la mejor prueba es la utilidad y el sentido; Esto es especialmente cierto si está interesado principalmente en la explicación.
Peter Flom - Restablece a Monica
Mis disculpas por la lenta respuesta. Para aclarar, pensé que, al usar la validación cruzada para calcular el error en diferentes tamaños de árbol, ya había dividido efectivamente los datos repetidamente en conjuntos de entrenamiento y prueba. ¿Realizar otra división de entrenamiento / prueba sería redundante en ese caso? ¿Te estoy malentendiendo?
medio pase el
Al dividir los datos en tren / prueba y validar de forma cruzada el parámetro cp usando solo datos de tren, se reproducirá una prueba de predicción realista (donde no se pueden usar datos futuros para estimar cp). Entonces, el primer CV será para cp, el error de predicción para el modelo general (incluido el cp estimado).
Robert Kubrick

Respuestas:

6

En la práctica, he visto adoptar ambos enfoques, y creo que, en general, no se esperaría que sus resultados difieran mucho de ninguna manera.

Dicho esto, Hastie et al recomiendan la regla de "error estándar" en los Elementos del aprendizaje estadístico , y tiendo a confiar en su juicio (Sección 7.10, pág. 244 en mi versión). La cita relevante es:

A menudo, se utiliza una regla de "error de un estándar" con validación cruzada, en la que elegimos el modelo más parsimonioso cuyo error no es más que un error estándar por encima del error del mejor modelo ".

Su intuición de por qué uno seguiría la regla de error estándar es correcta: haría eso para evitar seleccionar un modelo que se ajuste a los datos.

Tchotchke
fuente
1

Primero debe comenzar usando los argumentos minsplit=0y cp=0(parámetro de complejidad), luego usar las funciones plotcp(T.max)y printcp(T.max)elegir el valor cpcorrespondiente al error relativo mínimo y podar el árbol por la funciónprune.rpart(T.max, cp=....)

Esto debería obtener el árbol de clasificación óptimo, ya que tienden a ser demasiado optimistas.

Ayman Hijazy
fuente