随机森林包中的预测函数与使用xtest和ytest选项的randomForest给出了不同的结果。

4

当我运行以下代码时,我对获得的不同结果感到困惑:

set.seed(100) 
test1<-randomForest(BinaryY~., data=Xvars, trees=51, mtry=5, seed=200) 
predict(test1, newdata=cbind(NewBinaryY, NewXs), type="response") 

而这段代码:
set.seed(100) 
test2<-randomForest(BinaryY~.,data=Xvars,trees=51, mtry=5,seed=200,xtest=NewXs, ytest=NewBinY)   

这两个森林的混淆矩阵,由于相同的种子设置,我原以为会是一样的,但它们不同,预测值和投票也不同。起初我认为这只是打破平局的方式不同,所以我将树的数量改成了奇数,这样就不会再有平局了。
有人能否解释一下我希望这只是一个简单的疏忽?我只是想不通为什么对NewBinaryYs和NewX数据集应用这两个森林的预测结果不会相同。
另外,我注意到当我只使用1棵树时,结果是相同的。
感谢任何提示和帮助。

你能否构建一个包含数据的小而完整的示例,以重现这种行为? - joran
1个回答

1
我认为xtest和ytest指定了随机森林运行本身的测试集,因此它使用它而不是随机选择的OOB样本。如果是这种情况,那么你的两次运行将使用不同的测试数据集,从而创建不同的结果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接