我正在使用 R 中的 randomForest 包(R 版本 2.13.1,randomForest 版本 4.6-2)进行回归,并注意到我的结果存在显着偏差:预测误差取决于响应变量的值。高值预测不足,低值预测过高。起初我怀疑这是我的数据的结果,但以下简单示例表明这是随机森林算法固有的:
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")
毫无疑问,树方法在线性方面有其局限性,但即使是最简单的回归树,例如 R 中的 tree(),也不会表现出这种偏差。我无法想象社区不会意识到这一点,但没有发现任何提及,它通常是如何纠正的?感谢您的任何评论
编辑:这个问题的例子是有缺陷的,请参阅堆栈交换中的“RandomForest for regression in R - response distributiondependent bias”以获得改进的处理https://stats.stackexchange.com/questions/28732/randomforest-for-regression -in-r-response-distribution-dependent-bias