Learn R Programming

xgboost (version 1.7.5.1)

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

Description

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).

Usage

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

Value

An object of xgb.Booster class.

Arguments

object

object of class xgb.Booster

saveraw

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

Details

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.

Examples

Run this code

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:
print(bst1$handle)

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

Run the code above in your browser using DataLab