3

当我运行这样的代码时获得的不同结果让我感到困惑:

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 数据集会不一样。

另外,我注意到当我只使用一棵树时结果是一样的。

感谢您的任何提示和帮助。

4

1 回答 1

1

我相信 xtest 和 ytest 为随机森林运行本身指定测试集,以便它使用它而不是随机选择的 OOB 样本。如果是这种情况,那么您的两次运行正在使用不同的测试数据集,从而产生不同的结果。

于 2013-02-24T07:38:50.450 回答