R 如何绘制OOB错误与随机林中的树数
我拟合了一个随机森林模型。我使用了R 如何绘制OOB错误与随机林中的树数,r,random-forest,R,Random Forest,我拟合了一个随机森林模型。我使用了randomForest和ranger软件包。我没有调整森林中树木的数量,我只是保留了默认数量,即500。现在,我想看看这是否足够,也就是说,误差是否达到了稳定期。所以我相信我需要提取单个树,随机抽取100、200、300、400,最后是500棵树,从中取出oob树,计算出100、200的oob误差。。。树木连续生长。然后我可以绘制OOB错误与树数的关系图。我发现randomForest::getTree和ranger::treeInfo返回一个树的data.f
randomForest
和ranger
软件包。我没有调整森林中树木的数量,我只是保留了默认数量,即500。现在,我想看看这是否足够,也就是说,误差是否达到了稳定期。所以我相信我需要提取单个树,随机抽取100、200、300、400,最后是500棵树,从中取出oob树,计算出100、200的oob误差。。。树木连续生长。然后我可以绘制OOB错误与树数的关系图。我发现randomForest::getTree
和ranger::treeInfo
返回一个树的data.frame,但我不知道有什么。而且ranger::treeInfo
返回的数据帧中有50%的NAs,并且整体输出更难读取。
因此,我的问题是:
ranger::treeInfo
有50%的NAs,而实际上只有这些行有预测李>
下面是一个简单的例子:
mpg2 <- mpg %>%
mutate(is_suv = as.factor(class == 'suv')) %>%
select(-class)
mpg_model <- ranger::ranger(is_suv ~ ., data = mpg2)
ranger::treeInfo(mpg_model, tree = 100)
mpg2%
变异(is_suv=as.factor(class=='suv'))%>%
选择(-class)
mpg_模型我认为您要查找的只是绘图(.)
,如本例所示:
library(randomForest)
set.seed(71)
iris.rf <- randomForest(Species ~ ., data=iris, importance = TRUE, proximity=TRUE)
# plot the model
plot(iris.rf)
# add legend to know which is which
legend("top", colnames(iris.rf$err.rate), fill=1:ncol(iris.rf$err.rate))
这基本上是这样的描述:
谢谢!不同的颜色意味着什么?以及如何使用ranger
软件包来实现这一点?图例将指示每种颜色代表什么,并且您只能使用调用绘图来绘制OOB
(x=1:nrow(iris.rf$err.rate),y=iris.rf$err.rate[,1],type='l')
,如果您查看iris.rf$err.rate
(模型的错误率),至于ranger
,不幸的是,我不熟悉为每棵树提取OOB的方法。
nodeID leftChild rightChild splitvarID splitvarName splitval terminal prediction
1 0 1 2 4 Petal.Width 0.80 FALSE <NA>
2 1 NA NA NA <NA> NA TRUE setosa