num_boost_round和n_estimators之间有什么区别

时间:2018-01-01 17:27:53

标签: xgboost

我看到一些xgboost方法采用参数num_boost_round,如下所示:

model = xgb.cv(params, dtrain,  num_boost_round=500, early_stopping_rounds=100)
然而,

其他人会像n_estimators那样:

model_xgb = xgb.XGBRegressor(n_estimators=360, max_depth=2, learning_rate=0.1)

据我了解,每次使用增强功能时,都会创建一个新的估算器。这是不正确的?

如果是这样,则数字num_boost_roundn_estimators应该相等,对吗?

1 个答案:

答案 0 :(得分:5)

是的,它们是相同的,都引用相同的参数(see the docs herethe github issue)。

使用不同名称的原因是因为xgb.XGBRegressor是scikit-learn API的实现;并且scikit-learn通常使用n_estimators来指代提升阶段的数量(例如GradientBoostingClassifier