10 votos

Sesgo dependiente de la distribución de la respuesta en la regresión de bosques aleatorios

Estoy utilizando el paquete randomForest en R (R versión 2.13.1, randomForest versión 4.6-2) para la regresión y he observado un sesgo importante en mis resultados: el error de predicción depende del valor de la variable de respuesta. Los valores altos están infravalorados y los valores bajos están sobrevalorados. Al principio sospeché que esto era una consecuencia de mis datos, pero el siguiente ejemplo sencillo 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 x1 se distribuye uniformemente, no hay sesgo; si x1 se 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 es de extrañar que un modelo tenga dificultades para predecir los valores atípicos. En el caso de randomForest, un valor de respuesta de magnitud extrema procedente de la cola de una distribución tiene menos probabilidades de acabar en una hoja terminal y su efecto se verá borrado en la media del conjunto.

Tenga en cuenta que traté de 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 se podría formular una corrección del sesgo dada la distribución de la respuesta que uno está tratando de predecir, lo que resulta en predicciones más precisas.

¿Están los métodos basados en árboles, como el bosque aleatorio, sujetos a un sesgo en la distribución de las respuestas? Si es así, ¿es esto conocido previamente por la comunidad estadística y cómo se suele corregir (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. Por desgracia, la respuesta estimada/predicha no suele tener la misma relación con el sesgo.

0 votos

Llevo casi 12 meses dándole vueltas a esta misma pregunta. Véase stats.stackexchange.com/questions/21530/ y kaggle.com/forums/t/1106/pregunta-aleatoria-de-bosques-novatos . Estoy de acuerdo en que el problema parece ser que los valores atípicos no están siendo bien representados por las medias que se utilizan como predicción en cada nodo. El ajuste de la predicción o el modelo en el nodo parecen enfoques razonables, pero no estoy seguro de cuál es el enfoque estándar.

4voto

ESRogs Puntos 1381

Es perfectamente como usted sospecha -- el hecho de que los nodos de las hojas contengan medias sobre algún conjunto de objetos hace que cualquier modelo de árbol de regresión apriete la distribución de la 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 por el sobreajuste) es envolver el modelo en algún tipo de regresión clásica que reescalaría la respuesta a su distribución deseada.

La mejor solución es uno de los modelos de árbol en hoja, como por ejemplo MOB en el paquete del partido. 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 el árbol regular) sino a una relación simple (digamos lineal) entre la respuesta y algunos predictores. Dicha relación puede resolverse ahora ajustando algún modelo simple que no perturbe la distribución ni recorte los valores extremos y que sea capaz de extrapolar.

0 votos

¿Por qué el cambio de escala de la distribución de la respuesta puede llevar a un sobreajuste? La relación de ordenación entre dos de las salidas de los bosques mantendrá el mismo orden después de someterla a un ajuste polinómico para reescalarla, por lo que la toma de decisiones del modelo no se verá afectada si se basa en los cuantiles de la salida.

0 votos

Tienes razón; estaba pensando en un escenario en el que la RF produce una respuesta totalmente sin sentido y la regresión la convierte en algo con engañosamente mejor $R^2$ .

3voto

troutwine Puntos 367

Tuve exactamente el mismo problema con la RF condicional a la que se accede a través del paquete ratonero. Envié un correo electrónico a Graham Williams (autor de rattle) al respecto, quien amablemente remitió mi consulta a los autores de cforest, quienes respondieron y sugirieron jugar con dos parámetros que no parecen estar referenciados en ninguna parte de la documentación de CRF, pero que sin embargo parecían resolver el problema, a saber, minplit = 2 y minbucket = 1.

0 votos

minsplit Supongo que te refieres a

2voto

Bob King Puntos 12913

Debería estimar el valor óptimo de mtry y sampsize minimizando el "error validado cruzado" fuera de la muestra sobre una cuadrícula de diferentes parámetros mtry, sampsize, para cualquier variable de respuesta correspondiente para un conjunto fijo de características y luego hacer cualquier conclusión en términos de los resultados. Puede crear una combinación de los parámetros de la cuadrícula utilizando expand.grid.

2 votos

Se trata de una buena sugerencia para la construcción de modelos, ya que, en general, la optimización de los parámetros permite obtener predicciones más precisas. Sin embargo, en este caso el sesgo existe independientemente de la sintonía, por lo que puedo decir. Sólo hay un predictor, por lo que mtry debe ser 1. Cualquier tamaño de muestra inferior a n sólo sirve para magnificar el sesgo, y el tamaño de los nodos tiene poco efecto.

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