Sesgo dependiente de distribución de respuesta en regresión forestal aleatoria

9

Estoy usando el paquete randomForest en R (R versión 2.13.1, randomForest versión 4.6-2) para la regresión y noté un sesgo significativo en mis resultados: el error de predicción depende del valor de la variable de respuesta. Los valores altos se predicen por debajo y los valores bajos se predicen en exceso. Al principio sospeché que esto era una consecuencia de mis datos, pero el siguiente ejemplo simple sugiere que esto es inherente al algoritmo de bosque aleatorio:

n = 1000; 
x1 = rnorm(n, mean = 0, sd = 1)
response = x1
predictors = data.frame(x1=x1) 
rf = randomForest(x=predictors, y=response)
error = response-predict(rf, predictors)
plot(x1, error)

Sospecho que el sesgo depende de la distribución de la respuesta, por ejemplo, si x1está distribuido uniformemente, no hay sesgo; si x1se distribuye exponencialmente, el sesgo es unilateral. Esencialmente, los valores de la respuesta en las colas de una distribución normal son valores atípicos. No sorprende que un modelo tenga dificultades para predecir valores atípicos. En el caso de randomForest, es menos probable que un valor de respuesta de magnitud extrema desde la cola de una distribución termine en una hoja terminal y su efecto se eliminará en el promedio del conjunto.

Tenga en cuenta que intenté capturar este efecto en un ejemplo anterior, "RandomForest en R regresión lineal colas mtry". Este fue un mal ejemplo. Si el sesgo en el ejemplo anterior es realmente inherente al algoritmo, se deduce que podría formularse una corrección de sesgo dada la distribución de respuesta que uno está tratando de predecir, lo que resulta en predicciones más precisas.

¿Los métodos basados ​​en árboles, como el bosque aleatorio, están sujetos al sesgo de distribución de respuesta? Si es así, ¿es esto previamente conocido por la comunidad estadística y cómo se corrige generalmente (por ejemplo, un segundo modelo que utiliza los residuos del modelo sesgado como entrada)?

La corrección de un sesgo dependiente de la respuesta es difícil porque, por naturaleza, la respuesta no se conoce. Desafortunadamente, la respuesta estimada / pronosticada a menudo no comparte la misma relación con el sesgo.

retumbarB
fuente
He estado reflexionando sobre esta misma pregunta durante casi 12 meses. Ver stats.stackexchange.com/questions/21530/… y kaggle.com/forums/t/1106/random-forests-newbie-question . Estoy de acuerdo en que el problema parece ser que los valores atípicos no están bien representados por los promedios que se utilizan como predicción en cada nodo. El ajuste de predicción o el modelo en nodo parecen enfoques razonables, pero no estoy seguro de cuál es el enfoque estándar.
redcalx

Respuestas:

4

Es perfectamente como sospecha: el hecho de que los nodos de hoja contengan medios sobre algún conjunto de objetos hace que cualquier modelo de árbol de regresión ajuste la distribución de respuesta y haga imposible cualquier extrapolación. El conjunto, por supuesto, no ayuda con eso y, de hecho, empeora la situación.

La solución ingenua (y peligrosa debido al sobreajuste) es envolver el modelo en algún tipo de regresión clásica que redimensionaría la respuesta a su distribución deseada.

La mejor solución es uno de los modelos de árbol modelo en hoja, como por ejemplo MOB en el paquete de fiesta. La idea aquí es que la partición del espacio de características debe terminar cuando el problema se simplifica no a un valor simple (como en un árbol normal) sino a una relación simple (digamos lineal) entre la respuesta y algunos predictores. Dicha relación se puede resolver ahora ajustando un modelo simple que no perturbe la distribución o recorte valores extremos y pueda extrapolar.


fuente
¿Por qué reescalar la distribución de la respuesta llevaría a un sobreajuste? La relación de ordenamiento entre cualquiera de los dos resultados de los bosques mantendrá el mismo orden después de empujarlo a través de un ajuste polinómico para reescalarlo, por lo que la toma de decisiones del modelo no se verá afectada si basa su decisión en los cuantiles del resultado.
Jase
R2
3

Tuve exactamente el mismo problema con el acceso a RF condicional a través del paquete sonajero. Le envié un correo electrónico a Graham Williams (autor de sonajero) al respecto, quien remitió amablemente mi consulta a los autores más importantes, quienes respondieron y sugirieron jugar con dos parámetros que en realidad no se mencionan en ninguna parte de la documentación del CRF, pero que, sin embargo, parecían abordar El problema, a saber, minplit = 2 y minbucket = 1.

Scott MacLean
fuente
minsplit, Supongo que quieres decir
smci
2

Debe estimar el valor óptimo de mtry y sampsize minimizando el "error de validación cruzada" fuera de la muestra en una cuadrícula de diferentes parámetros de mtry, sampsize, para cualquier variable de respuesta correspondiente para un conjunto fijo de características y luego sacar conclusiones. en cuanto a los resultados. Puede crear una combinación de los parámetros de la cuadrícula utilizando expand.grid.

coche fúnebre
fuente
2
Esta es una buena sugerencia para construir modelos, en general, los parámetros optimizados producirán predicciones más precisas. Sin embargo, en este caso, el sesgo existe independientemente del ajuste, por lo que puedo decir. Solo hay un predictor, por lo que mtry debe ser 1. Cualquier tamaño de muestra menor que n solo sirve para aumentar el sesgo, y el tamaño de nodo tiene poco efecto.
rumbleB