This callback function determines the condition for early stopping.
The following attributes are assigned to the booster's object:
best_scorethe evaluation score at the best iterationbest_iterationat which boosting iteration the best score has occurred (0-based index for interoperability of binary models)
The same values are also stored as R attributes as a result of the callback, plus an additional
attribute stopped_by_max_rounds which indicates whether an early stopping by the stopping_rounds
condition occurred. Note that the best_iteration that is stored under R attributes will follow
base-1 indexing, so it will be larger by '1' than the C-level 'best_iteration' that is accessed
through xgb.attr() or xgb.attributes().
At least one dataset is required in evals for early stopping to work.
Usage
xgb.cb.early.stop(
stopping_rounds,
maximize = FALSE,
metric_name = NULL,
verbose = TRUE,
save_best = FALSE
)Arguments
- stopping_rounds
The number of rounds with no improvement in the evaluation metric in order to stop the training.
- maximize
Whether to maximize the evaluation metric.
- metric_name
The name of an evaluation column to use as a criteria for early stopping. If not set, the last column would be used. Let's say the test data in
evalswas labelled asdtest, and one wants to use the AUC in test data for early stopping regardless of where it is in theevals, then one of the following would need to be set:metric_name = 'dtest-auc'ormetric_name = 'dtest_auc'. All dash '-' characters in metric names are considered equivalent to '_'.- verbose
Whether to print the early stopping information.
- save_best
Whether training should return the best model or the last model. If set to
TRUE, it will only keep the boosting rounds up to the detected best iteration, discarding the ones that come after. This parameter is not supported by thexgb.cvfunction and thegblinearbooster yet.
Value
An xgb.Callback object, which can be passed to xgb.train() or xgb.cv().