R中的GBM丢失节点

R中的GBM丢失节点,r,gbm,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)

我正在玩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)
当我观察pred与UVI的散点图时,我确实看到了大约380的分裂,两个终端值分别为2.717099和3.029333。 (1) 如何使这些终端值与树的参数相一致?我应该能够从SplitCodePred派生它们,但我看不到它们之间的联系 (2) 即使我的数据没有丢失值,丢失节点是否正常? (3) 我对权重(“该节点中的观察总数”)感到困惑。为什么节点3的权重为214,尽管没有丢失数据

非常感谢

罗兰

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

例如,如果没有缺失数据或缺失值,深度为1的树<缺失节点的最小obs值将是左右节点值的加权平均值

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

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

例如,如果没有缺失数据或缺失值,深度为1的树<缺失节点的最小obs值将是左右节点值的加权平均值


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

,以便我们理解您的要求(我认为这实际上不是编码问题,而是一个方法问题),您需要发布代码和数据;两个都看不见我知道了。。我缺少存储在gbmfit$initF中的常量。。我仍然对(2)和(3)感到困惑,为了让我们理解您的问题(我认为这实际上不是一个编码问题,而是一个方法论问题),您需要发布代码和数据;两个都看不见我知道了。。我缺少存储在gbmfit$initF中的常量。。我仍然对(2)和(3)感到困惑
  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