[Feature Request] Add score_tree_interval during early stopping
- Dominant language
- C++
- Stars
- 28.8k
- Forks
- 8.9k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 54
Description
## Request:
Add a `score_tree_interval` option so that when you're building with really large data, the model doesn't eval on each tree.
Similar to this:
http://docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/score_tree_interval.html
## Purpose:
With large data, scoring every iteration on the validation set is extremely costly. Currently with `early_stopping_rounds` the behavior is to score on every early_stopping_round round.
https://xgboost.readthedocs.io/en/latest/python/python_api.html#xgboost.XGBRegressor.fit.
It would be nice to be able to space out the width of the early stopping rounds, as H2O does, see H2O's stopping_rounds parameter for example. You can tell H2O to score every 20 trees and if the model hasn't improved in 5 scoring iterations (e.g., 100 trees), then XGBoost would stop training.
It would also be nice if you could also enable different early stopping at different points in the tree. For example, suppose you wanted to not score on the eval_set until the 1000th tree, and then score on every tree. This would help make the training time more efficient if you knew before hand (say, from prior modeling runs) how long the tree took before converging.
I'm primarily concerned with the python implementation of this library, I don't _think_ this has been implemented elsewhere already
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.