繁体   English   中英

将随机森林变成决策树-在R中使用randomForest包

[英]Turning a Random Forest into a Decision Tree - Using randomForest package in R

是否可以生成决策树的树完全相同? 请注意,这是一个实验性问题。 据我了解,与单个决策树相比,随机森林具有两个导致“随机性”的参数:

1)在决策树的每个节点上随机采样的要素数量,以及

2)绘制一些训练示例来创建树。

直观地讲,如果我将这两个参数设置为其最大值,则应避免使用“随机性”,因此,每个创建的树都应该完全相同。 因为所有树木都是完全相同的,所以无论森林中树木的数量或不同的行径(即不同的种子值),我都应该获得相同的结果。

我已经使用R中的randomForest库测试了这个想法。我认为上述两个参数分别对应于'mtry'和'sampsize'。 我将这些值设置为最大值,但是不幸的是,仍然存在一些随机性,因为OOB误差估计值取决于森林中树木的数量?

您能否帮助我理解如何充分地使用R中的randomForest库的参数来消除随机决策林中的所有随机性?

除了mtry和sampsize之外,randomForest()中还有另一个相关的参数:replace。 默认情况下,通过替换来完成用于生长每棵树的数据点的采样。 如果要在所有树中使用所有数据点,则不仅需要将sampsize设置为数据点的数量,还需要设置replace = FALSE。

这是一个玩具示例,展示了您可以得到一棵相同树木的森林:

库(随机森林)

set.seed(17)

x <-矩阵(sample(5,50,replace = TRUE),10,5)

y <-factor(sample(2,10,replace = TRUE))

rf1 <-randomForest(x,y,mtry = ncol(x),sampsize = nrow(x),replace = FALSE,ntree = 5)

然后,可以使用getTree(rf1,1)等检查所有树是否相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM