首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用R中的randomForest包将随机森林转化为决策树

利用R中的randomForest包将随机森林转化为决策树
EN

Stack Overflow用户
提问于 2014-04-29 07:11:22
回答 1查看 990关注 0票数 0

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

( 1)在决策树的每个节点随机抽样的特征数,以及

2)为创建树而绘制的训练示例的数量。

直观地说,如果我将这两个参数设置为它们的最大值,那么我应该避免“随机性”,因此每个创建的树都应该完全相同。因为所有的树都是完全相同的,所以不管森林中有多少树或不同的运行(即不同的种子值),我都应该取得相同的结果。

我使用R中的randomForest库测试了这个想法,我认为前面提到的两个参数分别对应于'mtry‘和'sampsize’。我已经将这些值设置为它们的最大值,但不幸的是,仍然存在一些随机性,因为OOB-错误估计会根据森林中的树数而变化?!

请您帮助我理解如何消除随机决策林中的所有随机性,预先使用R中randomForest库的参数吗?

EN

回答 1

Stack Overflow用户

发布于 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)等来检查所有树是否相同。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23357906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档