¿Cuáles son las razones teóricas para no manejar valores perdidos? Máquinas de aumento de gradiente, árboles de regresión manejan valores perdidos. ¿Por qué Random Forest no hace eso?
¿Cuáles son las razones teóricas para no manejar valores perdidos? Máquinas de aumento de gradiente, árboles de regresión manejan valores perdidos. ¿Por qué Random Forest no hace eso?
Respuestas:
Gradient Boosting Trees utiliza árboles CART (en una configuración estándar, como lo propusieron sus autores). Los árboles CART también se usan en bosques aleatorios. Lo que @ user777 dijo es cierto, que los árboles de RF manejan los valores faltantes, ya sea por imputación con promedio, ya sea por medio / modo aproximado, o por un promedio / modo basado en proximidades. Breiman y Cutler propusieron estos métodos y se utilizan para RF. Esta es una referencia de autores Faltan valores en el conjunto de entrenamiento .
Sin embargo, uno puede construir un GBM o RF con otro tipo de árboles de decisión. El reemplazo habitual para CART es C4.5 propuesto por Quinlan. En C4.5 los valores faltantes no se reemplazan en el conjunto de datos. En cambio, la función de impureza calculada toma en cuenta los valores faltantes al penalizar el puntaje de impureza con la relación de valores perdidos. En la prueba, configure la evaluación en un nodo que tenga una prueba con un valor perdido, la predicción se construye para cada nodo secundario y se agrega más tarde (mediante ponderación).
Ahora, en muchas implementaciones se usa C4.5 en lugar de CART. La razón principal es evitar el cálculo costoso (CART tiene enfoques estadísticos más rigurosos, que requieren más cálculo), los resultados parecen ser similares, los árboles resultantes son a menudo más pequeños (ya que CART es binario y C4.5 no). Sé que Weka usa este enfoque. No conozco otras bibliotecas, pero espero que no sea una situación singular. Si ese es el caso con su implementación de GBM, entonces esta sería una respuesta.
"¿Cuáles son [las] razones teóricas [para que RF] no maneje los valores perdidos? Las máquinas de aumento de gradiente, los árboles de regresión manejan los valores perdidos. ¿Por qué Random Forest no hace eso?"
RF hace valores de identificador faltante, pero no de la misma manera que CART y otros algoritmos de árboles de decisión similares hacen. El usuario777 describe correctamente los dos métodos utilizados por RF para manejar los datos faltantes (imputación mediana y / o medida basada en la proximidad), mientras que Frank Harrell describe correctamente cómo se manejan los valores faltantes en CART (divisiones sustitutas). Para obtener más información, consulte los enlaces sobre el manejo de datos faltantes para CART (o su primo FOSS: RPART ) y RF .
Una respuesta a su pregunta real está claramente cubierta, en mi humilde opinión, en el artículo de 2008 de Ishwaran et al titulado Random Survival Forests . Proporcionan la siguiente explicación plausible de por qué RF no maneja los datos faltantes de la misma manera que CART o clasificadores de árbol de decisión única similares:
"Aunque la división sustituta funciona bien para los árboles, el método puede no ser adecuado para los bosques. La velocidad es un problema. Encontrar una división sustituta es computacionalmente intensivo y puede volverse inviable cuando se cultiva una gran cantidad de árboles, especialmente para árboles completamente saturados utilizados por Además, las divisiones sustitutas pueden no ser significativas en un paradigma forestal. RF selecciona aleatoriamente variables al dividir un nodo y, como tal, las variables dentro de un nodo pueden no estar correlacionadas, y una división sustituta razonable puede no existir. Otra preocupación es que la división sustituta altera la interpretación de una variable, lo que afecta a medidas como [Importancia de la variable].
Por estas razones, se requiere una estrategia diferente para RF ".
Esto es un aparte, pero para mí, esto pone en duda a aquellos que afirman que RF usa un conjunto de modelos CART. He visto esta afirmación en muchos artículos, pero nunca he visto tales declaraciones derivadas de ningún texto autorizado sobre RF. Por un lado, los árboles en un RF se cultivan sin podar , lo que generalmente no es el enfoque estándar al construir un modelo CART. Otra razón sería la que usted menciona en su pregunta: CART y otros conjuntos de árboles de decisión manejan los valores faltantes, mientras que [el original] RF no lo hace, al menos internamente como CART.
Con esas advertencias en mente, creo que se podría decir que RF utiliza un conjunto de árboles de decisión tipo CART (es decir, un grupo de árboles no podados, desarrollados en su máxima extensión, sin la capacidad de manejar los datos faltantes a través de la división sustituta). Quizás esta sea una de esas diferencias semánticas puntillosas, pero creo que vale la pena señalarla.
EDITAR : En mi nota al margen, que no está relacionada con la pregunta real formulada, dije que "nunca he visto tales declaraciones originadas en ningún texto autorizado sobre RF". Resulta que Breiman DID expresó específicamente que los árboles de decisión CART se usan en el algoritmo de RF original:
"El bosque aleatorio más simple con características aleatorias se forma seleccionando al azar, en cada nodo, un pequeño grupo de variables de entrada para dividir. Cultive el árbol utilizando la metodología CART hasta el tamaño máximo y no pode". [Mi énfasis]
Fuente: p.9 de Random Forests. Breiman (2001)
Sin embargo, todavía mantengo (aunque de manera más precaria) la noción de que estos son árboles de decisión tipo CART, ya que se cultivan sin podar, mientras que un CART normalmente nunca se ejecuta en esta configuración, ya que casi con certeza sobrepasará sus datos ( de ahí la poda en primer lugar).
El bosque aleatorio maneja los datos faltantes y hay dos formas distintas de hacerlo:
1) Sin imputación de datos faltantes, pero proporcionando inferencia. 2) Imputar los datos. Los datos imputados se usan para inferencia.
Ambos métodos se implementan en mi paquete R randomForestSRC (coescrito con Udaya Kogalur). Primero, es importante recordar que debido a que los bosques aleatorios emplean una selección aleatoria de características, los métodos tradicionales de datos faltantes utilizados por árboles individuales (CART y similares) no se aplican. Este punto se hizo en Ishwaran et al. (2008), "Random Survival Forests", Annals of Applied Statistics , 2 , 3 , y bien articulado por uno de los comentaristas.
El método (1) es un método de "imputación sobre la marcha" (OTFI). Antes de dividir un nodo, los datos que faltan para una variable se imputan al extraer valores aleatoriamente de los datos en bolsa que no faltan. El propósito de estos datos imputados es hacer posible asignar casos a nodos secundarios en caso de que el nodo se divida en una variable con datos faltantes. Sin embargo, los datos imputados no se usan para calcular la estadística dividida que usa solo datos no faltantes. Después de una división de nodos, los datos imputados se restablecen a faltantes y el proceso se repite hasta que se alcanzan los nodos terminales. OTFI conserva la integridad de los datos fuera de la bolsa y, por lo tanto, los valores de rendimiento como la importancia variable (VIMP) siguen siendo imparciales. El algoritmo OTFI se describió en Ishwaran et al (2008) y se implementó en el paquete retirado randomSurvivalForest,
El método (2) se implementa utilizando la función "imputar" en randomForestSRC. Se encuentran disponibles métodos de división no supervisados, aleatorizados y multivariados para imputar datos. Por ejemplo, la división multivariada generaliza el método de imputación missForest de gran éxito ( Stekhoven y Bühlmann (2012), "MissForest: imputación no paramétrica del valor faltante para datos de tipo mixto", Bioinformatics , 28 , 1 ). Llamar a la función de imputar con datos faltantes devolverá un marco de datos imputado que puede ajustarse utilizando la función de bosque primario "rfsrc".
Una comparación detallada de los diferentes algoritmos de datos faltantes del bosque implementados usando "imputar" se describió en un artículo reciente con Fei Tang "Algoritmos de datos faltantes del bosque aleatorio", 2017 . Recomiendo consultar los archivos de ayuda de "rfsrc" e "impute" de randomForestSRC para obtener más detalles sobre la imputación y OTFI.
La partición recursiva utiliza divisiones sustitutas basadas en predictores no faltantes que están correlacionados con el predictor que posee el valor faltante para una observación. En teoría, parece posible que se implementen bosques aleatorios que utilizan la misma idea. No sé si algún software forestal aleatorio lo ha hecho.
Random Forest tiene dos métodos para manejar los valores perdidos, según Leo Breiman y Adele Cutler, quienes lo inventaron.
El primero es rápido y sucio: simplemente completa el valor medio de las variables continuas, o el valor no perdido más común por clase .
El segundo método completa los valores faltantes, luego ejecuta RF, luego, para los valores continuos faltantes, RF calcula el promedio ponderado por proximidad de los valores faltantes. Entonces este proceso se repite varias veces. Luego, el modelo se entrena por última vez utilizando el conjunto de datos imputados a RF.
En lugar de utilizar valores medios , etc., recomendaría encarecidamente mirar el paquete missRanger (actualmente en desarrollo en Github) o el paquete R missForest). Ambos paquetes usan bosques aleatorios para imputar primero sus datos usando un método similar a la imputación múltiple a través de ecuaciones encadenadas (MICE). Este sería el método de imputación apropiado para usar, ya que corresponde estrechamente a su modelo de análisis real. Luego puede usar todos sus datos sin tener que preocuparse por descartar filas individuales debido a observaciones faltantes. Además, los valores imputados serán mucho más realistas que simplemente seleccionar medianas o modos.
Puede usar solo un conjunto de datos imputados rellenos para sus análisis, pero la mejor manera de incorporar la incertidumbre sobre los valores perdidos es ejecutar múltiples ejecuciones de estos métodos de imputación y luego estimar su modelo en cada uno de los conjuntos de datos resultantes (es decir, múltiples imputación) y luego combinar las estimaciones utilizando las reglas de Rubin (ver paquete de mitools R)
Para CART, puede aplicar el enfoque de falta de atributos (MIA). Es decir, para los predictores categóricos, el código que falta como una categoría separada. Para los predictores numéricos, crea dos nuevas variables para cada variable con faltas: una donde codifica las faltas como -Inf y otra donde codifica las faltas como + Inf. Luego aplica una función de bosque aleatorio como de costumbre a sus datos.
Ventajas de MIA: 1) Computacionalmente barato, 2) no produce múltiples conjuntos de datos y, por lo tanto, modelos, como lo hace la imputación múltiple (la literatura de imputación de datos faltantes generalmente acepta que un conjunto de datos imputado no es suficiente), 3) no requiere elegir un método estadístico y / o modelo para imputar los datos.
Las funciones ctree()
y el cforest()
paquete partykit permiten aplicar MIA pasando ctree_control(MIA = TRUE)
a sus control
argumentos.
El programa RuleFit de Jerome Friedman parece utilizar MIA para tratar con las faltas, consulte https://statweb.stanford.edu/~jhf/r-rulefit/rulefit3/RuleFit_help.html#xmiss .
Se puede encontrar una descripción del enfoque MIA en Twala et al. (2008):
Twala, BETH, Jones, MC y Hand, DJ (2008). Buenos métodos para hacer frente a los datos faltantes en los árboles de decisión. Cartas de reconocimiento de patrones, 29 (7), 950-956.
party
paquete R. Un artículo de blog aquí: exegetic.biz/blog/2013/05/…