xgb.plot.multi.trees 括号中的数字是什么意思?

问题描述 投票:0回答:1

它不是树的数量,因为我只训练了25棵。它也不是变量的值。这一点从括号里的值的比例就可以看出来,这没有意义,因为很多变量都被记录下来了。我检查了文档,没有解释。有什么想法或其他参考资料吗?

df1 <- xgb.train(data = X_train_dmat, 
               eta = 0.1,
               max_depth = 5, 
               nround=25, 
               subsample = 0.5,
               colsample_bytree = 0.5,
               booster = 'gbtree',
               objective = 'reg:squarederror',
               nthread = 3
)

xgb.plot.multi.trees(model = df1, 
                     features_keep = 5, 
                     use.names=FALSE,
                     plot_width = NULL,
                     plot_height = NULL,
                     render = TRUE
                     )

r xgboost
1个回答
1
投票

看了一下源码。https:/github.comdmlcxgboostblobmasterR-packageRxgb.plot.multi.trees.R#L94。,这是创建树中节点的部分。

  nodes.dt <- tree.matrix[
        , .(Quality = sum(Quality))
        , by = .(abs.node.position, Feature)
      ][, .(Text = paste0(Feature[1:min(length(Feature), features_keep)],
                          " (",
                          format(Quality[1:min(length(Quality), features_keep)], digits=5),
                          ")") %>%
                   paste0(collapse = "\n"))
        , by = abs.node.position]

具体来说,这就是写这些数字的代码。

format(Quality[1:min(length(Quality), features_keep)], digits=5)

所以,这些数字显示了每个节点的质量,也就是... ... 我想 反映了该节点对数据的划分是否恰当。我已经有一段时间没有和这些模型打交道了,而且我从来没有精明过,所以不能确定我的解释。如果你想进一步解释质量的含义,你可以在源码中深入了解它的计算方式。

© www.soinside.com 2019 - 2024. All rights reserved.