【问题标题】:GBM MissingNode in RR中的GBM MissingNode
【发布时间】:2016-02-24 23:16:54
【问题描述】:

我正在玩 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)我对权重(“该节点中的观察总数”)感到困惑。为什么节点 3 的权重是 214,虽然没有丢失数据?

非常感谢,

罗兰

【问题讨论】:

  • 为了让我们理解你在问什么(我认为这实际上不是一个编码问题,而是一个方法问题),你需要发布代码和数据;两者都看不到。
  • 我明白了..我错过了存储在 gbmfit$initF 中的常量..我仍然对 (2) 和 (3) 感到困惑

标签: r gbm


【解决方案1】:

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

在没有缺失数据或缺失值的情况下深度为 1 的树的示例

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

【讨论】:

    猜你喜欢
    • 2015-07-07
    • 2016-01-22
    • 1970-01-01
    • 2017-09-12
    • 2016-07-16
    • 2015-09-26
    • 2015-06-22
    • 1970-01-01
    • 2017-03-18
    相关资源
    最近更新 更多