R中连续randomForest.predict调用的结果不一致

Posted

技术标签:

【中文标题】R中连续randomForest.predict调用的结果不一致【英文标题】:results of consecutive randomForest.predict calls in R are inconsistent 【发布时间】:2012-12-17 23:02:49 【问题描述】:

创建随机森林后,我用它来预测样本外的测试数据集。但是,连续调用 predict 会产生不同的结果:

pred<-predict(rf, test)
pred1<-predict(rf, test)
which(pred!=pred1)
[1]  327  436  492  555  560  738 1264 1336 1339 1521 1772 1775 1780 1820 1826
[16] 2018 2019 2022 2023 2031 2099 2104 2238 2267 2621 3021 3029 3376 3467

关于我如何使这种不确定性的任何想法?

【问题讨论】:

除非您提供一个我们可以运行的示例来重现此行为,否则我们所能做的就是疯狂猜测。您的森林中的树木是偶数还是奇数? @joran 甚至,我认为这回答了这个问题。刚刚在 randomForest 的文档中看到了这一点“注意 2:任何关系都是随机破坏的,所以如果这是不可取的,请通过在 randomForest() 中使用奇数 ntree 来避免它。”谢谢。 继续自己写一个答案,然后接受它,只是为了确保这个问题被标记为已回答。 【参考方案1】:

当使用偶数个树时,预期结果是不确定的。来自randomForest doc:

注意 2:任何关系都是随机断开的,因此如果不希望出现这种情况,请在 randomForest() 中使用奇数 ntree 来避免它。

因此,如果需要一致的结果,则必须使用奇数个树。

【讨论】:

以上是关于R中连续randomForest.predict调用的结果不一致的主要内容,如果未能解决你的问题,请参考以下文章

为什么 MySQL 的自增主键不单调也不连续

settimeout和setInterval为啥连续调就不准了

如何在 scikit-learn 的随机森林的 graphviz-graph 中找到一个类?

r 在ggplot中缩放x连续

如何查找R中的数字是不是连续?

在R中添加具有连续数字的列