我正在使用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)我与权重(“该节点中的观察总数”)混淆了。为什么Node 3的权重是214,尽管没有丢失数据?
非常感谢,
罗兰
发布于 2016-08-03 03:17:18
2)是的,即使数据没有任何缺失值,丢失节点也是正常的。缺失节点的值将是其他节点的值的加权平均值
例如,对于深度为1的树,如果没有丢失数据或缺失值< min obs,则丢失节点的值将是左侧和右侧节点值的加权平均值
3)本例中缺失节点的权重(数据中无缺失值)为父节点的权重
https://stackoverflow.com/questions/33861060
复制相似问题