将 XGBoost 模型转储为文本格式。
用法
xgb.dump(
model,
fname = NULL,
fmap = "",
with_stats = FALSE,
dump_format = c("text", "json", "dot"),
...
)
参数
- model
模型对象。
- fname
保存模型文本转储的文本文件名称。如果未提供或设置为
NULL
,模型将作为字符向量返回。- fmap
表示特征类型的特征映射文件。请参阅 demo/ 以获取 R 中的详细示例,以及 https://github.com/dmlc/xgboost/blob/master/demo/data/featmap.txt 以查看该值的示例。
- with_stats
是否转储有关分裂的一些附加统计信息。当此选项打开时,模型转储包含两个附加值:gain 是我们在每次分裂中获得的近似损失函数增益;cover 是每个节点中二阶梯度的总和。
- dump_format
可以指定 'text', 'json' 或 'dot' (graphviz) 格式。
单棵树的 'dot' 格式可以直接传递给使用此格式进行图可视化的包,例如函数
DiagrammeR::grViz()
- ...
未使用。
在以前的 XGBoost 版本中属于此函数一部分的一些参数目前已被弃用或已重命名。如果传递了已弃用或已重命名的参数,将(默认情况下)抛出警告并使用其当前等效参数。如果使用 '严格模式' 选项,此警告将变为错误。
如果传递了既不是当前函数参数,也不是已弃用或已重命名的参数的附加参数,将根据 '严格模式' 选项抛出警告或错误。
重要:
...
将在未来版本中移除,并且所有当前的弃用警告将变为错误。请仅使用构成函数签名一部分的参数。
示例
DONTSHOW({RhpcBLASctl::omp_set_num_threads(1)})
data(agaricus.train, package = "xgboost")
data(agaricus.test, package = "xgboost")
train <- agaricus.train
test <- agaricus.test
bst <- xgb.train(
data = xgb.DMatrix(train$data, label = train$label, nthread = 1),
nrounds = 2,
params = xgb.params(
max_depth = 2,
nthread = 2,
objective = "binary:logistic"
)
)
# save the model in file 'xgb.model.dump'
dump_path = file.path(tempdir(), 'model.dump')
xgb.dump(bst, dump_path, with_stats = TRUE)
# print the model without saving it to a file
print(xgb.dump(bst, with_stats = TRUE))
# print in JSON format:
cat(xgb.dump(bst, with_stats = TRUE, dump_format = "json"))
# plot first tree leveraging the 'dot' format
if (requireNamespace('DiagrammeR', quietly = TRUE)) {
DiagrammeR::grViz(xgb.dump(bst, dump_format = "dot")[[1L]])
}