R线性回归中的RandomForest尾随mtry

标签 r statistics regression random-forest

我使用 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() 没有表现出这种偏差。我无法想象社区会不知道这一点,但没有发现任何提及,它通常是如何纠正的?感谢您的任何评论

编辑:这个问题的例子有缺陷,请参阅堆栈交换中的“随机森林回归 R - 响应分布相关偏差”以获得改进的处理 https://stats.stackexchange.com/questions/28732/randomforest-for-regression-in-r-response-distribution-dependent-bias

最佳答案

您发现的不是随机森林中的固有偏差,而只是未能正确调整模型的调整参数。

使用您的示例数据:

rf = randomForest(x=predictors, y=response,mtry = 2,nodesize = 1)
plot(x1, response)
lines(x1, predict(rf, predictors), col="red")

enter image description here

当然,对于您的真实数据,改进不太可能如此明显,而且我敢打赌您会从 nodesize 中获得更多的里程数。比mtry ( mtry 在这里完成了大部分工作)。

常规树没有表现出这种“偏差”的原因是因为它们默认搜索所有变量以获得最佳分割。

关于R线性回归中的RandomForest尾随mtry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10508168/

相关文章:

在R中用单列中的字符重命名多个变量

r - R中MAD函数和手动MAD计算的区别

algorithm - 修改 Levenshtein 距离以考虑位置,同时是对称的

python - 为什么使用 Seaborn 绘制回归时截距显示不正确?

regex - 如何在 R 中使用正则表达式查找文本中最长的字符串

r - 如何按日期对数据框进行排序

R错误if语句 'argument is of length zero'

r - 计算回归系数在 R 中是否具有统计显着性

python - 没有正则化的sklearn LogisticRegression

python - 随机森林回归 - 如何分析其性能? - python ,sklearn