将XGBoost模型保存为二进制或JSON格式的文件。
详细信息
此方法允许将模型保存为XGBoost内部的二进制或文本格式,该格式在各种xgboost接口中是通用的。在R中,保存的模型文件以后可以使用xgb.load()函数或xgb.train()的xgb_model参数读取。
注意:模型也可以保存为R对象(例如,通过使用readRDS()或save())。但是,它将只与R兼容,并且需要使用相应的R方法来加载它。此外,使用readRDS()或save()持久化模型可能会在XGBoost的未来版本中导致兼容性问题。请查阅a-compatibility-note-for-saveRDS-save,了解如何以面向未来的方式持久化模型,即让模型在XGBoost的未来版本中可访问。
示例
DONTSHOW({RhpcBLASctl::omp_set_num_threads(1)})
data(agaricus.train, package = "xgboost")
data(agaricus.test, package = "xgboost")
## Keep the number of threads to 1 for examples
nthread <- 1
data.table::setDTthreads(nthread)
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 = nthread,
    objective = "binary:logistic"
  )
)
fname <- file.path(tempdir(), "xgb.ubj")
xgb.save(bst, fname)
bst <- xgb.load(fname)