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?
fuente
[Nota: vea la actualización 1 a continuación.] Creo que la metodología
rpart
es mucho más fácil de explicar queparty
. Sin embargo, este último es mucho más sofisticado y es probable que ofrezca mejores modelos. La forma en que a veces explicoparty
es 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,
party
desarrolla 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
rpart
por claridad, y puede usarloparty
para precisión / rendimiento, pero no lo presentaríaparty
sin presentarlorpart
.Actualización 1. Basé mi respuesta en mi comprensión de
party
como era hace uno o dos años. Ha crecido bastante, pero modificaría mi respuesta para decir que todavía lo recomendaríarpart
por 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 funcionalidadesparty
después de haberle presentado a alguienrpart
. 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.fuente
party
que puede hacer el paquete. Laparty
función pura crea un solo árbol simple, comorpart
con el voto mayoritario en las hojas. Lamob
funciónparty
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)mob
o si el resto del paquete ha crecido bastante; no recuerdo haber visto bosques aleatorios antes, por ejemplo. Revisaré mi respuesta ...ctree
hacer un solo árbol,cforest
hacer un bosque al azar ymob
hacer hojas basadas en el modelo. Y para tu información, cforest es divertido, pero terriblemente lento para predecir.mob
puede haber estado allí desde el principio, o al menos vino despuésctree
, supongo. Ha existido desde 2009 o antes. De todos modos, solo demuestra que todos podemos aprender algo nuevo en SE. :)