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