Ejecuté un modelo de regresión OLS en un conjunto de datos con 5 variables independientes. Las variables independientes y la variable dependiente son continuas y están relacionadas linealmente. El cuadrado R es de aproximadamente 99.3%. Pero cuando ejecuto lo mismo usando un bosque aleatorio en R, mi resultado es '% Var explicó: 88.42'. ¿Por qué el resultado aleatorio del bosque sería tan inferior a la regresión? Mi suposición era que el bosque aleatorio sería al menos tan bueno como la regresión OLS.
r
regression
random-forest
usuario28906
fuente
fuente
Respuestas:
No sé exactamente lo que hiciste, por lo que tu código fuente me ayudaría a adivinar menos.
Muchos bosques aleatorios son esencialmente ventanas dentro de las cuales se supone que el promedio representa el sistema. Es un árbol CAR excesivamente glorificado.
Digamos que tienes un árbol CAR de dos hojas. Sus datos se dividirán en dos pilas. La salida (constante) de cada pila será su promedio.
Ahora hagámoslo 1000 veces con subconjuntos aleatorios de datos. Aún tendrá regiones discontinuas con salidas que son promedios. El ganador en un RF es el resultado más frecuente. Eso solo "difunde" la frontera entre categorías.
Ejemplo de salida lineal por partes del árbol CART:
Digamos, por ejemplo, que nuestra función es y = 0.5 * x + 2. Una trama de eso se parece a la siguiente:
Si tuviéramos que modelar esto usando un solo árbol de clasificación con solo dos hojas, primero encontraríamos el punto de mejor división, división en ese punto, y luego aproximaríamos la salida de la función en cada hoja como la producción promedio sobre la hoja.
Si tuviéramos que hacer esto nuevamente con más hojas en el árbol CART, entonces podríamos obtener lo siguiente:
¿Por qué los bosques CAR?
Puede ver que, en el límite de hojas infinitas, el árbol CART sería un aproximador aceptable.
El problema es que el mundo real es ruidoso. Nos gusta pensar en medios, pero al mundo le gustan tanto la tendencia central (media) como la tendencia a la variación (std dev). Hay ruido.
Lo mismo que le da a un árbol CAR su gran fuerza, su capacidad para manejar la discontinuidad, lo hace vulnerable al ruido de modelado como si fuera una señal.
Entonces, Leo Breimann hizo una propuesta simple pero poderosa: usar métodos Ensemble para hacer robustos los árboles de Clasificación y Regresión. Toma subconjuntos aleatorios (un primo de remuestreo de bootstrap) y los usa para entrenar un bosque de árboles CAR. Cuando haces una pregunta sobre el bosque, todo el bosque habla y la respuesta más común se toma como resultado. Si se trata de datos numéricos, puede ser útil considerar la expectativa como la salida.
Entonces, para el segundo diagrama, piense en modelar usando un bosque aleatorio. Cada árbol tendrá un subconjunto aleatorio de los datos. Eso significa que la ubicación del "mejor" punto de división variará de un árbol a otro. Si tuviera que hacer un diagrama de la salida del bosque aleatorio, a medida que se acerca a la discontinuidad, las primeras ramas indicarán un salto, luego muchas. El valor medio en esa región atravesará un camino sigmoide suave. Bootstrapping es complicado con un gaussiano, y el desenfoque gaussiano en esa función de paso se convierte en un sigmoide.
Líneas inferiores:
Necesita muchas ramas por árbol para obtener una buena aproximación a una función muy lineal.
Hay muchos "diales" que podría cambiar para impactar la respuesta, y es poco probable que los haya configurado a los valores adecuados.
Referencias
fuente
Noto que esta es una vieja pregunta, pero creo que se debe agregar más. Como dijo @Manoel Galdino en los comentarios, generalmente le interesan las predicciones sobre datos no vistos. Pero esta pregunta es sobre el rendimiento en los datos de entrenamiento y la pregunta es ¿por qué el bosque aleatorio se desempeña mal en los datos de entrenamiento ? La respuesta destaca un problema interesante con los clasificadores en bolsas que a menudo me ha causado problemas: la regresión a la media.
El problema es que los clasificadores en bolsas, como el bosque aleatorio, que se obtienen tomando muestras de arranque de su conjunto de datos, tienden a funcionar mal en los extremos. Debido a que no hay muchos datos en los extremos, tienden a suavizarse.
Con más detalle, recuerde que un bosque aleatorio para la regresión promedia las predicciones de una gran cantidad de clasificadores. Si tiene un solo punto que está lejos de los demás, muchos de los clasificadores no lo verán, y estos esencialmente harán una predicción fuera de la muestra, lo que podría no ser muy bueno. De hecho, estas predicciones fuera de muestra tenderán a arrastrar la predicción para el punto de datos hacia la media general.
Si usa un solo árbol de decisión, no tendrá el mismo problema con los valores extremos, pero la regresión ajustada tampoco será muy lineal.
Aquí hay una ilustración en R. Algunos datos se generan en
y
una combinación perfecta de cincox
variables. Luego se hacen predicciones con un modelo lineal y un bosque aleatorio. Luego, los valores dey
los datos de entrenamiento se grafican contra las predicciones. Puede ver claramente que al bosque aleatorio le está yendo mal en los extremos porque los puntos de datos con valores muy grandes o muy pequeñosy
son raros.Verá el mismo patrón para las predicciones en datos invisibles cuando se utilizan bosques aleatorios para la regresión. No estoy seguro de cómo evitarlo. La
randomForest
función en R tiene una opción de corrección de sesgo crudacorr.bias
que usa regresión lineal en el sesgo, pero realmente no funciona.¡Sugerencias son bienvenidas!
fuente
El bosque aleatorio intenta encontrar localidades entre muchas características y muchos puntos de datos. Divide las características y las da a diferentes árboles, ya que tiene un número bajo de características, el resultado general no es tan bueno como la regresión logística. El bosque aleatorio puede manejar variables numéricas y categóricas, pero no es bueno para manejar valores perdidos.
fuente
Creo que Random Forest (RF) es una buena herramienta cuando la forma funcional de la relación entre X e y es complicada (debido a las relaciones no lineales y al efecto de interacción). RF clasifica las X según el mejor punto de corte (en términos de SSE mínimo) y no aplica la información del investigador sobre la forma funcional de la relación. Por otro lado, la regresión OLS utiliza esta información. En su ejemplo, usted sabe cuál es exactamente el tipo de relación entre Xs ey usa toda esta información en su modelo de regresión, pero RF no usa esta información.
fuente
Para lo básico, la regresión funciona bien sobre variables continuas y el bosque aleatorio sobre variables discretas.
Debe proporcionar más detalles sobre el problema y sobre la naturaleza de las variables para ser más específico ...
fuente