Callback closure to activate the early stopping.
cb.early.stop(
stopping_rounds,
maximize = FALSE,
metric_name = NULL,
verbose = TRUE
)
The number of rounds with no improvement in the evaluation metric in order to stop the training.
whether to maximize the evaluation metric
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 watchlist
was labelled as dtest
,
and one wants to use the AUC in test data for early stopping regardless of where
it is in the watchlist
, then one of the following would need to be set:
metric_name='dtest-auc'
or metric_name='dtest_auc'
.
All dash '-' characters in metric names are considered equivalent to '_'.
whether to print the early stopping information.
This callback function determines the condition for early stopping
by setting the stop_condition = TRUE
flag in its calling frame.
The following additional fields are assigned to the model's R object:
best_score
the evaluation score at the best iteration
best_iteration
at which boosting iteration the best score has occurred (1-based index)
best_ntreelimit
to use with the ntreelimit
parameter in predict
.
It differs from best_iteration
in multiclass or random forest settings.
The Same values are also stored as xgb-attributes:
best_iteration
is stored as a 0-based iteration index (for interoperability of binary models)
best_msg
message string is also stored.
At least one data element is required in the evaluation watchlist for early stopping to work.
Callback function expects the following values to be set in its calling frame:
stop_condition
,
bst_evaluation
,
rank
,
bst
(or bst_folds
and basket
),
iteration
,
begin_iteration
,
end_iteration
,
num_parallel_tree
.