J'ai vu que certaines méthodes xgboost
prennent un paramètre num_boost_round
, comme ça:
model = xgb.cv(params, dtrain, num_boost_round=500, early_stopping_rounds=100)
D'autres prennent cependant n_estimators
comme ça:
model_xgb = xgb.XGBRegressor(n_estimators=360, max_depth=2, learning_rate=0.1)
Pour autant que je sache, chaque fois qu'un boosting est appliqué, un nouvel estimateur est créé. N'est-ce pas exact?
Si tel est le cas, les chiffres num_boost_round
et n_estimators
devrait être égal, non?
Oui, ils sont les mêmes, se référant tous deux au même paramètre ( voir les documents ici , ou le problème de github ).
La raison du nom différent est parce que xgb.XGBRegressor
est une implémentation de l'API scikit-learn; et scikit-learn utilise classiquement n_estimators
pour se référer au nombre d'étapes de boosting (par exemple le GradientBoostingClassifier )