109 votos

Árboles de inferencia condicional frente a los árboles de decisión tradicionales

¿Puede alguien explicar las principales diferencias entre los árboles de inferencia condicional ( ctree de party en R) en comparación con los algoritmos de árboles de decisión más tradicionales (como rpart en R)?

  1. ¿Qué hace que los árboles de CI sean diferentes?
  2. ¿Fortalezas y debilidades?

Actualización: He mirado el artículo de Horthorn et al al que Chi se refiere en los comentarios. No he podido seguirlo completamente - ¿alguien puede explicar cómo se seleccionan las variables mediante permutaciones (por ejemplo, qué es una función de influencia)?

3 votos

Se refiere a una explicación que va más allá de lo descrito en El documento de Hothorn ? Recuerdo unas bonitas ilustraciones de Carolin Strobl en el IMPS2009 conferencia; creo que hay algunos folletos en su página web.

1 votos

Este enlace muestra la comparación entre varias formas de paquetes de árboles de decisión r-bloggers.com/a-brief-tour-of-the-trees-and-forests

107voto

jdstrand Puntos 1029

Por si sirve de algo:

ambos rpart y ctree realizar recursivamente divisiones univariadas de la variable dependiente en función de los valores de un conjunto de covariables. rpart y algoritmos afines suelen emplear medidas de información (como el Coeficiente de Gini ) para seleccionar la covariable actual.

ctree según sus autores (véase chl's comentarios) evita el siguiente sesgo de selección de variables de rpart (y métodos relacionados): Tienden a seleccionar variables que tienen muchas divisiones posibles o muchos valores perdidos. A diferencia de los otros, ctree utiliza un procedimiento de prueba de significación para seleccionar las variables en lugar de seleccionar la variable que maximiza una medida de información (por ejemplo, el coeficiente de Gini).

La prueba de significación, o mejor: las pruebas de significación múltiples calculadas en cada inicio del algoritmo (seleccionar covariable - elegir división - recurrir) son pruebas de permutación es decir, "la distribución del estadístico de prueba bajo la hipótesis nula se obtiene calculando todos los valores posibles del estadístico de prueba bajo reordenamientos de las etiquetas en los puntos de datos observados". (del artículo de la wikipedia).

Ahora, la estadística de la prueba: se calcula a partir de las transformaciones (incluida la identidad, es decir, sin transformación) de la variable dependiente y las covariables. Puede elegir cualquiera de un número de transformaciones para ambas variables. Para la VD (variable dependiente), la transformación se denomina función de influencia por el que preguntabas.

Ejemplos (tomados de la papel ):

  • si tanto la VD como las covariables son numéricas, podría seleccionar transformaciones de identidad y calcular las correlaciones entre la covariable y todas las permutaciones posibles de los valores de la VD. A continuación, se calcula la p -de esta prueba de permutación y compararlo con p -valores para otras covariables.
  • si tanto la VD como las covariables son nominales (categóricas no ordenadas), la estadística de la prueba se calcula a partir de una tabla de contingencia.
  • se pueden hacer fácilmente otros tipos de estadísticas de prueba a partir de cualquier tipo de transformaciones (incluida la transformación de identidad) de este esquema general.

pequeño ejemplo para una prueba de permutación en R :

require(gtools)
dv <- c(1,3,4,5,5); covariate <- c(2,2,5,4,5)
# all possible permutations of dv, length(120):
perms <- permutations(5,5,dv,set=FALSE) 
# now calculate correlations for all perms with covariate:
cors <- apply(perms, 1, function(perms_row) cor(perms_row,covariate)) 
cors <- cors[order(cors)]
# now p-value: compare cor(dv,covariate) with the 
# sorted vector of all permutation correlations
length(cors[cors>=cor(dv,covariate)])/length(cors)
# result: [1] 0.1, i.e. a p-value of .1
# note that this is a one-sided test

Ahora suponga que tiene un conjunto de covariables, no sólo una como la anterior. Entonces calcule p -para cada una de las covariables como en el esquema anterior, y seleccionar la que tenga el menor p -valor. Se desea calcular p -en lugar de las correlaciones directamente, porque podría tener covariables de diferentes tipos (por ejemplo, numéricas y categóricas).

Una vez que haya seleccionado una covariable, ahora explore todas las divisiones posibles (o a menudo un número de alguna manera restringido de todas las divisiones posibles, por ejemplo, requiriendo un número mínimo de elementos del VD antes de la división) evaluando de nuevo una prueba basada en permutaciones.

ctree viene con una serie de transformaciones posibles tanto para la VD como para las covariables (véase la ayuda para Transformations en el party paquete).

por lo que, en general, la principal diferencia parece ser que ctree utiliza un esquema de selección de covariables que se basa en la teoría estadística (es decir, la selección mediante pruebas de significación basadas en la permutación) y evita así un posible sesgo en rpart Por ejemplo, los árboles de inferencia condicional pueden utilizarse como aprendices de base para los bosques aleatorios.

Esto es lo más lejos que puedo llegar. Para obtener más información, hay que leer los documentos. Tenga en cuenta que recomiendo encarecidamente que sepa realmente lo que está haciendo cuando quiera aplicar cualquier tipo de análisis estadístico.

0 votos

Entonces, ¿sería justo decir lo siguiente? 1. En principio, si las pruebas de significación estuvieran disponibles y fueran fáciles de calcular para Gini, entonces cualquier constructor de árboles de decisión actual podría aumentar con ellas; 2. Pero en la práctica no están disponibles (es decir, son muy difíciles/ineficientes de calcular) para la mayoría de los casos; 3. Los autores de los árboles CI eligieron una familia de criterios de división. Esta no es necesariamente la mejor familia para la precisión de la clasificación, pero al menos para ella es fácil calcular la significación; 4. ¿Y por lo tanto una debilidad de los árboles CI es que se requiere usar este criterio específico?

1 votos

@SheldonCooper: 1. y 2. pueden estar un poco por encima de mi cabeza. Creo que tienes razón en cuanto a 3. y 4.

0 votos

@Wolf ¡Gracias por esta explicación, me ha ayudado mucho! Me preguntaba, ¿cuál es su opinión sobre los pesos utilizados - son simplemente "1" cuando no hay una ponderación de un caso determinado?

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