【发布时间】:2015-03-17 12:28:04
【问题描述】:
(之前发here,发错子了,信息不够,已关闭,我编辑了,编辑好像被删除了,帖子被送进了炼狱,抱歉再次发帖,我不知道之前的帖子能不能/应该复活)
在 R 中,我使用 dismo 运行了一些 Boosted Regression Trees,即广义 Boosting Models,它使用 gbm。将人们带到我目前所在位置的可重现示例:
library(dismo); data(Anguilla_train)
angaus.tc5.lr01 <- gbm.step(data=Anguilla_train, gbm.x = 3:13, gbm.y = 2, family = "bernoulli", tree.complexity = 5, learning.rate = 0.01, bag.fraction = 0.5)
(来自here)。这将为您留下 gbm 模型对象“angaus.tc5.lr01”。 我想根据 De'ath 2007 生成分裂(折叠?)的树状图,即绘制树木(见图,左窗格)。但是:De'ath 的图是单个回归树,而不是增强回归树,它是潜在数千棵树的平均值,每棵树都使用从数据集中随机抽取的不同数据集。
用户 ckluss 好心地建议了 rpart,但是这需要由 rpart 生成的模型,因此不适用于 gbm.step 生成的 BRT/GBM。来自rpart.plot 的prp 也是如此。
pretty.gbm.tree in gbm 为选择的任何一棵树提取信息矩阵(第一个尝试pretty.gbm.tree(angaus.tc5.lr01, i.tree=1))所以我想知道这是否可能是成功的可行途径?例如。通过编写一些脚本,使用所有可用的树创建一个平均树矩阵,然后将其转换为树状对象,可能使用一些方法here。
人们提出了不同程度的类似问题,似乎在网上其他地方都没有成功。 BRT 模型经常被描述为“黑匣子”,因此可能普遍的看法是,人们不应该需要/能够/费心去探究它们并展示它们的内部过程。
如果有人对 BRT/gbm 有足够的了解并有任何想法,我们将不胜感激。
谢谢。
【问题讨论】:
-
问题是没有“平均”树,就像随机森林没有平均树一样。例如,如果第一个节点一半时间在数值变量上分支,另一半时间在分类变量上分支怎么办?如果一些分类分支在域 {A,B,C} 和其他 {C,D,E} 上怎么办?没有办法做到这一点。
标签: r plot tree dendrogram gbm