我正在玩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,尽管没有丢失数据?
非常感谢,
罗兰
答案 0 :(得分:0)
2)是的,即使数据没有任何缺失值,丢失节点也是正常的。缺失节点的值将是其他节点的值的加权平均值
在没有丢失数据或缺少值的情况下深度为1的树的示例&lt;缺失节点的最小障碍值将是左右节点值的加权平均值
3)在这种情况下丢失节点的权重(数据中没有缺失值)将是父节点的权重