Bosque aleatorio vs regresión

21

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.

usuario28906
fuente
44
Si su objetivo es predecir, un R-cuadrado más alto puede deberse a un sobreajuste. Intente comparar las predicciones RN con las predicciones de regresión mediante validación cruzada.
Manoel Galdino

Respuestas:

27

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: Figura 1

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.

parcela con CARRO trivial

Si tuviéramos que hacer esto nuevamente con más hojas en el árbol CART, entonces podríamos obtener lo siguiente: ingrese la descripción de la imagen aquí

¿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

EngrStudent - Restablece a Monica
fuente
¿No se realiza la regresión forestal ALEATORIA con funciones constantes por partes, que obviamente no se ajustan a los datos relacionados linealmente?
seanv507
Creo que estamos diciendo lo mismo. ¿Qué constante es la que se usa? Derecha.
EngrStudent - Restablece a Monica el
Si pensara que estamos diciendo lo mismo, lo habría puesto como comentario. No entiendo tu respuesta. Mi respuesta explica que los datos de OP son lineales y están tan mal ajustados por una función constante por partes.
seanv507
@ seanv507 El beneficio de la RF es que los múltiples árboles, que se ajustan a (subconjuntos aleatorios de) versiones perturbadas de los datos, promedian las discontinuidades. El resultado es una mejor aproximación a la línea suave subyacente que lo que produciría un solo árbol.
Hong Ooi
Es esencialmente un remuestreo de arranque en un árbol de regresión. Una de las cosas que no me gusta de bootstrap es que la distribución uniforme cuenta como un previo informativo. ¿No es el caso ideal un previo no informativo?
EngrStudent - Restablece a Monica el
7

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 yuna combinación perfecta de cinco xvariables. Luego se hacen predicciones con un modelo lineal y un bosque aleatorio. Luego, los valores de ylos 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ños yson 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 randomForestfunción en R tiene una opción de corrección de sesgo cruda corr.biasque usa regresión lineal en el sesgo, pero realmente no funciona.

¡Sugerencias son bienvenidas!

beta <- runif(5)
x <- matrix(rnorm(500), nc=5)
y <- drop(x %*% beta)
dat <- data.frame(y=y, x1=x[,1], x2=x[,2], x3=x[,3], x4=x[,4], x5=x[,5])
model1 <- lm(y~., data=dat)
model2 <- randomForest(y ~., data=dat)
pred1 <- predict(model1 ,dat)
pred2 <- predict(model2 ,dat)
plot(y, pred1)
points(y, pred2, col="blue")

ingrese la descripción de la imagen aquí

Flounderer
fuente
Estoy de acuerdo con su observación, pero me he convertido en un fanático de la regresión de RF hacia la media en áreas con pocos puntos de datos. Bueno, si uno estaba muy seguro de encontrar una buena estructura lineal general hasta el límite del conjunto de entrenamiento solo con el apoyo de unos pocos puntos de datos, simplemente haga una corrección lineal y haga que RF se encargue de los residuos.
Soren Havelund Welling
2
¡Gracias por el comentario! Tuve una experiencia desagradable en la que daba predicciones que eran muy malas y que me hacían quedar mal. Pero tal vez no haya forma de obtener predicciones más precisas para los puntos límite sin aumentar la varianza.
Flounderer
Un comentario adicional años más tarde, me di cuenta de que la RF tiende a funcionar mal en cualquier lugar donde haya una pequeña brecha en los datos. Por supuesto, a menudo hay menos datos en los extremos de un conjunto de datos, pero de vez en cuando puede terminar con una brecha en el centro. RF puede hacer un lío correcto de un conjunto de datos con cualquier espacio en él.
SeldomSeenSlim
2

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.

Abbas Shojaee
fuente
0

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.

J Faradmal
fuente
-2

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 ...

Subespacio
fuente
Todas las variables rendimientos diarios de las existencias (series de tiempo financieras) ...
user28906
3
"La regresión funciona bien sobre variables continuas y Random Forest sobre variables discretas": esto no es cierto en general. Hay distinciones en inferencia y predicción, e incluso con predicción hay casos en los que se preferiría la regresión sobre la RF.
AdamO