有没有一种方法可以获得R中随机林中每棵树的拆分记录和属性?

有没有一种方法可以获得R中随机林中每棵树的拆分记录和属性?,r,tree,random-forest,R,Tree,Random Forest,为了生成随机森林,该算法对记录和属性进行随机分割,并建立决策树。 例如,如果我使用以下代码: set.seed(71) rf <-randomForest(income~.,data=mydata, ntree=200) rf = randomForest(Species~.,data=iris,ntree=200,mtry=2,sampsize=30,keep.forest=TRUE,replace=FALSE,keep.inbag=TRUE) out_vars = varUse

为了生成随机森林,该算法对记录和属性进行随机分割,并建立决策树。 例如,如果我使用以下代码:

set.seed(71) 
rf <-randomForest(income~.,data=mydata, ntree=200) 
rf = randomForest(Species~.,data=iris,ntree=200,mtry=2,sampsize=30,keep.forest=TRUE,replace=FALSE,keep.inbag=TRUE)

out_vars = varUsed(rf,by.tree=TRUE) # gives the variables used in each tree
apply(out_vars,2,function(x) which(x!=0))

out_case = rf$inbag # gives the cases used in each tree
apply(out_case,2,function(x) which(x!=0))
set.seed(71)

rf根据您在mtry/sampsize中的设置,您可以使用以下代码:

set.seed(71) 
rf <-randomForest(income~.,data=mydata, ntree=200) 
rf = randomForest(Species~.,data=iris,ntree=200,mtry=2,sampsize=30,keep.forest=TRUE,replace=FALSE,keep.inbag=TRUE)

out_vars = varUsed(rf,by.tree=TRUE) # gives the variables used in each tree
apply(out_vars,2,function(x) which(x!=0))

out_case = rf$inbag # gives the cases used in each tree
apply(out_case,2,function(x) which(x!=0))

确保您选择了
keep.inbag=TRUE
replace=FALSE
,有关文档的信息,请参见
?randomForest
,根据您在mtry/sampsize中的设置,您可以使用以下代码:

set.seed(71) 
rf <-randomForest(income~.,data=mydata, ntree=200) 
rf = randomForest(Species~.,data=iris,ntree=200,mtry=2,sampsize=30,keep.forest=TRUE,replace=FALSE,keep.inbag=TRUE)

out_vars = varUsed(rf,by.tree=TRUE) # gives the variables used in each tree
apply(out_vars,2,function(x) which(x!=0))

out_case = rf$inbag # gives the cases used in each tree
apply(out_case,2,function(x) which(x!=0))

确保选择了
keep.inbag=TRUE
replace=FALSE
,参见
?randomForest
获取文档
getTree
是一个从
randomForest
对象中提取树结构的函数
getTree
是一个从
randomForest
对象中提取树结构的函数@timfaber。我感兴趣的是构建树的记录和变量,而不是树本身。是否有方法获取构建林中每棵树的源记录和变量(部分迷你数据集)?您可以通过查看
split var
列或查看
varUsed(rf,by.tree=TRUE)
来获取使用的唯一值,不确定唯一记录,让我再次查看谢谢。我有200棵树。如何获取第一棵树的相关记录和属性,例如,以下格式:tree[1]基于mydata行:5、8、102。和mydata属性:att1、att8、att19?对于树[2],相关的行和属性?哈,没有打结,但它实际上在文档中。如果选择
keep.inbag=TRUE
(同时选择replace as
FALSE
,因为它只提供唯一的样本),则可以获取样本。在timfaber更新了很多示例Thaks。我感兴趣的是构建树的记录和变量,而不是树本身。是否有方法获取构建林中每棵树的源记录和变量(部分迷你数据集)?您可以通过查看
split var
列或查看
varUsed(rf,by.tree=TRUE)
来获取使用的唯一值,不确定唯一记录,让我再次查看谢谢。我有200棵树。如何获取第一棵树的相关记录和属性,例如,以下格式:tree[1]基于mydata行:5、8、102。和mydata属性:att1、att8、att19?对于树[2],相关的行和属性?哈,没有打结,但它实际上在文档中。如果选择
keep.inbag=TRUE
(同时选择replace as
FALSE
,因为它只提供唯一的样本),则可以获取样本。更新了示例