xgb.Booster.complete: Restore missing parts of an incomplete xgb.Booster object.

View source: R/xgb.Booster.R

xgb.Booster.completeR Documentation

Restore missing parts of an incomplete xgb.Booster object.


It attempts to complete an xgb.Booster object by restoring either its missing raw model memory dump (when it has no raw data but its xgb.Booster.handle is valid) or its missing internal handle (when its xgb.Booster.handle is not valid but it has a raw Booster memory dump).


xgb.Booster.complete(object, saveraw = TRUE)



object of class xgb.Booster


a flag indicating whether to append raw Booster memory dump data when it doesn't already exist.


While this method is primarily for internal use, it might be useful in some practical situations.

E.g., when an xgb.Booster model is saved as an R object and then is loaded as an R object, its handle (pointer) to an internal xgboost model would be invalid. The majority of xgboost methods should still work for such a model object since those methods would be using xgb.Booster.complete internally. However, one might find it to be more efficient to call the xgb.Booster.complete function explicitly once after loading a model as an R-object. That would prevent further repeated implicit reconstruction of an internal booster model.


An object of xgb.Booster class.


data(agaricus.train, package='xgboost')
bst <- xgboost(data = agaricus.train$data, label = agaricus.train$label, max_depth = 2,
               eta = 1, nthread = 2, nrounds = 2, objective = "binary:logistic")
saveRDS(bst, "xgb.model.rds")

# Warning: The resulting RDS file is only compatible with the current XGBoost version.
# Refer to the section titled "a-compatibility-note-for-saveRDS-save".
bst1 <- readRDS("xgb.model.rds")
if (file.exists("xgb.model.rds")) file.remove("xgb.model.rds")
# the handle is invalid:

bst1 <- xgb.Booster.complete(bst1)
# now the handle points to a valid internal booster model:

xgboost documentation built on March 31, 2023, 10:05 p.m.