背景:
我可以在 R 中创建一个随机森林:
set.seed(1)
library(randomForest)
data(iris)
model.rf <- randomForest(Species ~ ., data=iris, importance=TRUE, ntree=20, mtry = 2)
我可以使用我刚刚制作的 randomForest 对象来预测值:
my_pred <- predict(model.rf)
plot(iris$Species,my_pred)
然后我可以从森林中随机剥下一些树:
idx <- sample(x = 1:20,size = 1,replace = F)
single_tree <- getTree(model.rf,k=1)
问题:
- 我如何预测从森林中拔出的一棵树?
- 我应该使用不同的库吗?(森林,派对,水,...)
到目前为止我看过的地方:
- 我尝试了经典的 randomForest,但没有“unget”或“predict on get”。有“成长”,但它使用骰子制作了一个新的随机森林,而不是使用特定的树。有“组合”,但它适用于 randomForest 对象,而不是从“getTree”返回的内容。
- 我尝试将多棵树打包到一个对象中,但没有成功——我对将这些数据缝合在一起的数据的理解还有改进的空间。
- 我尝试查看派对/cforest 的代码,但据称它是用 ctree 制作的,但文档中没有“getTree”。
- 我尝试了一些谷歌搜索,但没有找到关于这个特定任务的任何信息。
我还发现了一般相关的问题,其中(afaict)答案没有回答我的问题:
- https://stats.stackexchange.com/questions/21152/obtaining-knowledge-from-a-random-forest
- http://tjo.hatenablog.com/entry/2014/03/10/190000(不,我不读汉字,但我可以读 R)
- http://grokbase.com/t/r/r-help/11a5wgv1xn/r-party-extract-binarytree-from-cforest
似乎有一些关于整体统计的内容,以及关于在森林中绘制特定树的形状。似乎没有关于在森林中处理一棵树的问题。