16 votos

Partición de árboles en R: party vs. rpart

Hacía tiempo que no miraba los árboles de partición. La última vez que hice este tipo de cosas, me gusta la fiesta en R (creado por Hothorn). La idea de la inferencia condicional a través del muestreo tiene sentido para mí. Pero rpart también tenía atractivo.

En la aplicación actual (no puedo dar detalles, pero se trata de intentar determinar quién irá a la cárcel entre una gran muestra de detenidos) no puedo utilizar métodos avanzados como bosques aleatorios, bagging, boosting, etc. - Necesito una regla fácilmente explicable.

También me gustaría tener algún control manual sobre los nodos que se dividen, como se recomienda en Zhang & Singer (2010) Partición recursiva y aplicaciones . El programa gratuito que viene con ese libro lo permite, pero por lo demás es bastante primitivo en su entrada de usuario.

¿Alguna recomendación o sugerencia?

9voto

Psycho Bob Puntos 661

Estoy de acuerdo con @Iterator en que la metodología es más fácil de explicar para rpart. Sin embargo, si buscas reglas fácilmente explicables, party (sin árboles embolsados) no pierde nada respecto a la explicación de la predicción - sigues teniendo un único árbol. Si también está interesado en ver los impulsores de la variable de resultado (no sólo el puro poder de predicción), seguiría pensando que Party es el camino a seguir, explicando que un árbol de decisión (como rpart) puede estar bastante sesgado en la forma en que selecciona las variables que son importantes y en cómo crea las divisiones. Party utiliza pruebas de permutación y determina estadísticamente qué variables son más importantes y cómo se hacen las divisiones. Así, en lugar de inclinarse por variables categóricas con muchos niveles, como rpart por ejemplo, party utiliza pruebas estadísticas para encontrar la mejor estructura.

2 votos

Buena respuesta. Creo que has dado con una muy buena razón por la que la fiesta es mejor para un público avanzado, y por qué es una buena idea educar a la audiencia para ayudarla a aceptar el uso de la fiesta.

4voto

Nikos Alexandris Puntos 764

[Nota: Véase la actualización 1, más abajo]. Me parece que la metodología para rpart es mucho más fácil de explicar que party . Sin embargo, esta última es mucho más sofisticada y probablemente dé mejores modelos. La forma en que a veces explico party es hablar de ella como base para producir modelos lineales locales (o GLM). Para ello, señalo que los resultados de rpart son constantes en todos los elementos que caen en el nodo hoja, es decir, la caja/región delimitada por las divisiones. Aunque pueda haber mejoras a través de los modelos locales, no se consigue nada más que una predicción constante.

Por el contrario, party desarrolla las divisiones para optimizar potencialmente los modelos para las regiones. En realidad, utiliza un criterio diferente al de la optimización de los modelos, pero hay que calibrar la propia capacidad de explicar la diferencia para determinar si se puede explicar bien. Los documentos para ello son bastante accesibles para un investigador, pero pueden ser bastante desafiantes para alguien que no esté dispuesto a considerar métodos más simples como bosques aleatorios, boosting, etc. Matemáticamente, creo que party es más sofisticado... No obstante, los modelos CART son más fáciles de explicar, tanto en lo que respecta a la metodología como a los resultados, y constituyen un buen trampolín para introducir modelos más sofisticados basados en árboles.

En resumen, yo diría que hay que hacer rpart para mayor claridad, y puede utilizar party para la precisión / rendimiento, pero no introduciría party sin introducir rpart .


Actualización 1. He basado mi respuesta en mi comprensión de party como hace uno o dos años. Ha crecido bastante, pero modificaría mi respuesta para decir que seguiría recomendando rpart por su brevedad y legado, debería ser un criterio importante para su cliente/colaborador. Sin embargo, yo trataría de migrar a utilizar más funcionalidades de party Después de haber presentado a alguien a rpart . Es mejor empezar por algo pequeño, con funciones de pérdida, criterios de división, etc., en un contexto sencillo, antes de introducir un paquete y una metodología que impliquen conceptos mucho más complicados.

2 votos

Creo que estás confundiendo un poco lo que el party paquete puede hacer. El paquete puro party hace un solo árbol simple como rpart con el voto mayoritario en las hojas. El mob función en party es lo que construye árboles con modelos más complejos en las hojas (y elige las divisiones en función de la inestabilidad de los parámetros).

1 votos

@SheaParkes Tienes razón. Ha pasado un tiempo y no estoy seguro de si sólo usé mob o si el resto del paquete ha crecido bastante - no recuerdo haber visto bosques aleatorios antes, por ejemplo. Revisaré mi respuesta...

3 votos

Y en realidad, yo también había olvidado un poco. Es ctree para hacer un solo árbol, cforest para hacer un bosque aleatorio y mob para hacer las hojas basadas en el modelo. Y fyi, cforest es divertido, pero horriblemente lento para predecir con.

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