R中的GBM MissingNode

时间:2015-11-22 22:33:13

标签: r gbm

我正在玩R:

中的GBM包
library(gbm) 
gbmfit <- gbm( UVIndex ~ UVI + UVA + VIS + UVIVIS + UVIUVA + CosSZA +   ShadeTemp, data = df, distribution = "gaussian", n.trees = 1000, shrinkage = 0.1, cv.folds = 10)
pred <- predict(gbmfit, data = df , n.trees = 1)
pretty.gbm.tree(gbmfit,i.tree = 1)

给了我:

  SplitVar SplitCodePred LeftNode RightNode MissingNode ErrorReduction Weight
  0        0  380.50000000        1         2           3       471.9606    214
  1       -1   -0.11805471       -1        -1          -1         0.0000    140
  2       -1    0.19417906       -1        -1          -1         0.0000     74
  3       -1   -0.01008602       -1        -1          -1         0.0000    214

   Prediction
 0 -0.01008602
 1 -0.11805471
 2  0.19417906
 3 -0.01008602

当我看到pred与UVI的散点图时,我确实看到了大约380的分裂,其中两个终值为2.717099和3.029333。 (1)如何将这些终端值与树的参数进行协调?我应该可以从SplitCodePred派生出来,但我没有看到连接 (2)即使我的数据没有缺失值,节点是否正常也是正常的? (3)我对权重感到困惑(&#34;该节点中的观察总数&#34;)。为什么节点3的权重为214,尽管没有丢失数据?

非常感谢,

罗兰

1 个答案:

答案 0 :(得分:0)

2)是的,即使数据没有任何缺失值,丢失节点也是正常的。缺失节点的值将是其他节点的值的加权平均值

在没有丢失数据或缺少值的情况下深度为1的树的示例&lt;缺失节点的最小障碍值将是左右节点值的加权平均值

3)在这种情况下丢失节点的权重(数据中没有缺失值)将是父节点的权重