R中GBM模型的提取

R中GBM模型的提取,r,gbm,R,Gbm,是否有人熟悉如何了解R中gbm模型的内部情况 假设我们想看看如何预测虹膜的花瓣长度。为了简单起见,我运行了: tg=gbm(Petal.Length~.,data=iris) 这会起作用,当您运行时: summary(tg) 然后你会得到: Hit <Return> to see next plot: var rel.inf Petal.Width Petal.Width 67.39 Species Spe

是否有人熟悉如何了解R中
gbm
模型的内部情况

假设我们想看看如何预测虹膜的
花瓣长度。为了简单起见,我运行了:

tg=gbm(Petal.Length~.,data=iris)
这会起作用,当您运行时:

summary(tg)
然后你会得到:

Hit <Return> to see next plot: 
                      var rel.inf
Petal.Width   Petal.Width   67.39
Species           Species   32.61
Sepal.Length Sepal.Length    0.00
Sepal.Width   Sepal.Width    0.00
所以很明显,gbm认为你可以通过变量2进行分割,得到三个独立的回归。我假设
SplitVar==2
Petal.Width
,因为您在
str(iris)
中看到的顺序是有意义的

但是缺少什么数据呢<代码>虹膜
没有丢失的数据。然后,我们如何看到创建的三个节点中的每一个节点都发生了什么

<>我们假设我想在C++中对这个代码进行编码,我不知道如何才能知道什么是代码,除了知道你应该做些不同的事情,取决于IF代码> PATAL。宽度> 8。 谢谢


Josh

请参阅软件包中的函数
gbm2sas
,该函数使用元编程将R对象转换为SAS格式


SAS格式与C++类似,所以C++容易读取,易于破解。

<代码> GBM .Obj/<代码>文档似乎很详细。如何使用它来获取底层模型?我尝试过类似于
attr(tg,“trees”)
的方法,但只得到
NULL
我不知道为什么要使用
attr
。这只是一张单子。使用
tg$trees
tg$c.splits
,或
tg[[“trees”]
tg[[“c.splits”]]
。我也同意Awhstin的观点,即查看代码是好的-我建议查看
predict.gbm
的功能。好的,一开始我没看到这些。泰,现在看看。谢谢你,太好了@用户2925417:不客气。也许你可以把它标记为答案:)
  SplitVar SplitCodePred LeftNode RightNode MissingNode ErrorReduction Weight    Prediction
0        2  0.8000000000        1         2           3       184.6764     75  0.0001366667
1       -1 -0.0022989091       -1        -1          -1         0.0000     22 -0.0022989091
2       -1  0.0011476604       -1        -1          -1         0.0000     53  0.0011476604
3       -1  0.0001366667       -1        -1          -1         0.0000     75  0.0001366667