Particionar árboles en R: party vs. rpart

15

Ha pasado un tiempo desde que miré la partición de árboles. La última vez que hice este tipo de cosas, me gusta la fiesta en R (creada por Hothorn). La idea de inferencia condicional a través del muestreo tiene sentido para mí. Pero rpart también tuvo atractivo.

En la aplicación actual (no puedo dar detalles, pero implica tratar de determinar quién irá a la cárcel entre una gran muestra de detenidos) No puedo usar métodos avanzados como bosques aleatorios, embolsado, aumento, etc. - Necesito un método fácilmente explicable regla.

También me gustaría tener un control manual sobre qué nodos se dividen, como se recomienda en Zhang y Singer (2010) Particiones recursivas y aplicaciones . El software 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?

Peter Flom - Restablece a Monica
fuente

Respuestas:

8

Estoy de acuerdo con @Iterator en que la metodología es más fácil de explicar para rpart. Sin embargo, si está buscando reglas fáciles de explicar, la fiesta (sin árboles en bolsas) no pierde nada con respecto a la explicación de la predicción: todavía tiene un solo árbol. Si también está interesado en ver los impulsores de la variable de resultado (no solo el poder predictivo puro), todavía pensaría que esa parte es el camino a seguir, explicando que un árbol de decisión (como rpart) puede estar bastante sesgado en la forma en que selecciona qué Las variables son importantes y cómo crea divisiones. Party utiliza pruebas de permutación y determina estadísticamente qué variables son más importantes y cómo se realizan las divisiones. Entonces, en lugar de inclinarse hacia variables categóricas con muchos niveles, como rpart, por ejemplo, party usa pruebas estadísticas para encontrar la mejor estructura.

B_Miner
fuente
1
Buena respuesta. Creo que has encontrado una muy buena razón por la cual la fiesta es mejor para una audiencia avanzada, y por qué es una buena idea educar a la audiencia para ayudarlos a aceptar el uso de la fiesta.
Iterator
4

[Nota: vea la actualización 1 a continuación.] Creo que la metodología rpartes mucho más fácil de explicar que party. Sin embargo, este último es mucho más sofisticado y es probable que ofrezca mejores modelos. La forma en que a veces explico partyes hablar de ello como base para producir modelos locales lineales (o GLM). Acumulo esto señalando que los resultados pararpart son constantes en todos los elementos que caen en el nodo hoja, es decir, el cuadro / región delimitado por las divisiones. Incluso si puede haber mejoras a través de modelos locales, no obtienes nada más que una predicción constante.

En contraste, partydesarrolla las divisiones para optimizar potencialmente los modelos para las regiones. En realidad, está utilizando un criterio diferente al de la optimización del modelo, pero debe medir su propia capacidad para explicar la diferencia para determinar si puede explicarla bien. Los documentos 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, impulso, etc. Matemáticamente, creo queparty es más sofisticado ... Sin embargo, los modelos CART son más fáciles explican, tanto en términos de metodología como de resultados, y estos proporcionan un paso decente para introducir modelos más sofisticados basados ​​en árboles.

En resumen, diría que tiene que hacerlo rpartpor claridad, y puede usarlo partypara precisión / rendimiento, pero no lo presentaría partysin presentarlo rpart.


Actualización 1. Basé mi respuesta en mi comprensión de partycomo era hace uno o dos años. Ha crecido bastante, pero modificaría mi respuesta para decir que todavía lo recomendaría rpartpor su brevedad y legado, en caso de que "no sea lujoso" sea un criterio importante para su cliente / colaborador. Sin embargo, trataría de migrar para usar más funcionalidades partydespués de haberle presentado a alguien rpart. Es mejor comenzar de a poco, con funciones de pérdida, criterios de división, etc., en un contexto simple, antes de introducir un paquete y una metodología que impliquen conceptos mucho más involucrados.

Iterador
fuente
2
Creo que estás confundiendo un poco sobre lo partyque puede hacer el paquete. La partyfunción pura crea un solo árbol simple, como rpartcon el voto mayoritario en las hojas. La mobfunción partyes 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)
Shea Parkes
1
@SheaParkes Tienes razón. Ha pasado un tiempo, y no estoy seguro de si solo usé mobo si el resto del paquete ha crecido bastante; no recuerdo haber visto bosques aleatorios antes, por ejemplo. Revisaré mi respuesta ...
Iterator
2
Y en realidad, también me había olvidado un poco. Es ctreehacer un solo árbol, cforesthacer un bosque al azar y mobhacer hojas basadas en el modelo. Y para tu información, cforest es divertido, pero terriblemente lento para predecir.
Shea Parkes
Buscaré en la mafia , no creo que haya existido la última vez que usé party . Las aplicaciones forestales no son para mí, esta vez.
Peter Flom - Restablece a Monica
@PeterFlom Creo que mobpuede haber estado allí desde el principio, o al menos vino después ctree, supongo. Ha existido desde 2009 o antes. De todos modos, solo demuestra que todos podemos aprender algo nuevo en SE. :)
Iterator