R中GBM模型的提取
是否有人熟悉如何了解R中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
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