提取inbag信息gbm包R

问题描述

当 bag.fraction $p$ 小于 1 时,gbm 将一棵树 $t$ 拟合到数据集中的 $p$ x $N$ 个案例,并使用这些 $p$ X $N$ 个案例来计算终端节点预测。

有人知道是否可以提取有关哪个案例用于拟合的信息吗?例如,randomForest-function 有选项 keep.inbag=TRUEgbm 包中有类似的东西吗?

在这个例子中(取自这里:https://stats.stackexchange.com/questions/237582/interpretation-of-gbm-single-tree-prediction-in-pretty-gbm-tree)$p$ 是一

# random data:
x <- seq(0,1,length.out = 6)
y <- c(0,1)
dfs <- data.frame(x = x,y = y)
dfs

# fit a single tree with gbm:
M <- gbm::gbm(y ~ x,data = df,distribution="gaussian",n.trees = 1,bag.fraction = 1.0,n.minobsinnode = 1,shrinkage = 1.0)
gbm::predict.gbm( M,data = dfs,single.tree = TRUE )
[1] -0.5 -0.5 -0.5  0.5  0.5  0.5

看到前三个对象属于终端节点 1,后三个对象属于节点 2,预测是 $y$ - $M_y$ 的平均值(其中 $M_y$ 是 $y$ 的平均值) .

然而,在这个例子中,$p$ 是 0.8 并且预测与终端节点中对象的平均值不同:

set.seed(12354)
M <- gbm::gbm(y ~ x,bag.fraction = 0.8,single.tree = TRUE )
[1] -0.5 -0.5  0.5  0.5  0.5  0.5

有没有办法找出六个对象中的哪一个用于拟合树并计算预测?

提前致谢! 斯蒂芬

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)