我使用了包" randomForest"中的randomForest
方法在训练数据集上,看它是如何与"树中提供的回归树方法相关的。包装,只是出于好奇。这是命令:
rf.fit = randomForest(formula, data = dataTrain, mtry = var, ntree = 1,
replace = FALSE, samplesize = nrow(dataTrain))
其中var
是公式中的变量数。由于采用了所有变量,因此在完整的训练数据集上进行了抽样而没有替换,我认为对输出模型rf.fit
的测试数据集的预测应该与树方法的一致并且相等。然而,如果没有设置种子并且与后一种方法不同,它从圆形变为圆形。我很困惑,额外的随机性来自哪里。
答案 0 :(得分:1)
您正在比较的两种算法使用不同的分割标准,因此即使您没有面对随机性,我也不会期望预测结果是相同的。#34;随机性"正如你所说。
您可能应该花一些时间阅读所使用的算法(参见Breiman (2001)的描述性工作和Liaw and Wiener (2002)的R实现)。 "随机性"之所以引入,是因为对于随机森林算法生成的每棵树,都有一个1/3样本的随机子样本被保留用于袋外误差估计。因此,仅在您的数据的其他2/3上估算树,除非您先set.seed()
,否则该数据将在不同运行之间发生变化。
您可以检查拟合对象中OOB估计值中使用的观察值:
rf.fit$oob.times