是否可以生成树木完全相同的决策林?请注意,这是一个实验性问题。据我所知,随机森林有两个参数,导致随机性'与单个决策树相比:
1)在决策树的每个节点处随机抽样的特征数量,
2)用于创建树的多个训练示例。
直观地说,如果我将这两个参数设置为最大值,那么我应该避免“随机性”,因此每个创建的树应该完全相同。因为所有树都完全一样,无论森林中树木的数量或不同的运行(即不同的种子值),我都应该获得相同的结果。
我已经使用R中的randomForest库测试了这个想法。我认为前面提到的两个参数对应于' mtry'和' sampsize'分别。我已经将这些值设置为最大值,但不幸的是仍然存在一些随机性,因为OOB误差估计会根据森林中树木的数量而变化?!
请您帮助我了解如何删除随机决策林中的所有随机性,最好使用R中randomForest库的参数?
答案 0 :(得分:1)
除了mtry和sampsize之外,randomForest()还有另一个相关的参数:replace。默认情况下,每个树的数据点的采样都是通过替换来完成的。如果要在所有树中使用所有数据点,不仅需要将sampsize设置为数据点数,还要设置replace = FALSE。
这是一个玩具示例,表明您可以获得相同树木的森林:
库(随机森林)
set.seed(17)
x< - matrix(样本(5,50,替换= TRUE),10,5)
y< - factor(样本(2,10,替换= TRUE))
rf1< - randomForest(x,y,mtry = ncol(x),sampsize = nrow(x),replace = FALSE,ntree = 5)
然后您可以使用getTree(rf1,1)等检查所有树是否相同。