是否有可能生成一个树木完全相同的决策林?请注意,这是一个实验性的问题。据我所知,与单个决策树相比,随机森林有两个导致“随机性”的参数:
( 1)在决策树的每个节点随机抽样的特征数,以及
2)为创建树而绘制的训练示例的数量。
直观地说,如果我将这两个参数设置为它们的最大值,那么我应该避免“随机性”,因此每个创建的树都应该完全相同。因为所有的树都是完全相同的,所以不管森林中有多少树或不同的运行(即不同的种子值),我都应该取得相同的结果。
我使用R中的randomForest库测试了这个想法,我认为前面提到的两个参数分别对应于'mtry‘和'sampsize’。我已经将这些值设置为它们的最大值,但不幸的是,仍然存在一些随机性,因为OOB-错误估计会根据森林中的树数而变化?!
请您帮助我理解如何消除随机决策林中的所有随机性,预先使用R中randomForest库的参数吗?
发布于 2014-05-23 14:12:05
除了mtry和sampsize之外,randomForest()中还有另一个相关的参数:替换。默认情况下,对生长每棵树的数据点的采样是通过替换完成的。如果希望在所有树中使用所有数据点,那么不仅需要将sampsize设置为数据点的数量,还需要设置replace=FALSE。
下面是一个玩具示例,说明您可以获得一个由相同树木组成的森林:
图书馆(RandomForest) set.seed(17) X <-矩阵(样本(5,50,replace=TRUE),10,5) Y <-因子(样本(2,10,replace=TRUE)) rf1 <- randomForest(x,y,mtry=ncol(x),sampsize=nrow(x),replace=FALSE,ntree=5)
然后,您可以使用getTree(rf1,1)等来检查所有树是否相同。
https://stackoverflow.com/questions/23357906
复制相似问题