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 están por debajo de lo predicho y los valores bajos están por encima de lo predicho. Al principio yo sospechaba que era una consecuencia de mis datos, pero el siguiente ejemplo simple muestra que esto es inherente al algoritmo aleatorio forestal:RandomForest en R colas de regresión lineal mtry
n = 50;
x1 = seq(1,n)
x2 = matrix(1, n, 1)
predictors = data.frame(x1=x1, x2=x2)
response = x2 + x1
rf = randomForest(x=predictors, y=response)
plot(x1, response)
lines(x1, predict(rf, predictors), col="red")
No hay métodos de árboles duda tienen sus limitaciones cuando se trata de linealidad, pero incluso el más simple árbol de regresión, por ejemplo tree() en R, no muestra este sesgo. No puedo imaginar que la comunidad no lo sepa, pero no ha encontrado ninguna mención, ¿cómo se corrige en general? Gracias por cualquier comentario
EDIT: El ejemplo de esta pregunta es defectuoso, por favor ver "randomForest para la regresión en I - sesgo dependiente de distribución de respuesta" a cambio de la pila para obtener un tratamiento mejorado https://stats.stackexchange.com/questions/28732/randomforest-for-regression-in-r-response-distribution-dependent-bias
gracias Joran. Algo no se sentía bien y estoy contento de ver que hay una solución. Desafortunadamente para mi trabajo, ya he ajustado los parámetros con poco efecto (excepto, por supuesto, ntrees) y por eso los ignoré en su mayoría por este ejemplo "simple". Supongo que el sesgo realmente existe en mi caso, gracias de nuevo – rumbleB
. ... aunque si está limitado a tus datos, no es realmente un sesgo en los RF, ¿o sí? ;) ¡Solo tienes algunos datos difíciles de modelar! – joran
sí, el sesgo en RF es evitable - He cambiado el título de esta pregunta para que pueda ser más útil para las personas en el futuro – rumbleB