num_boost_round和n_estimators有什么区别?

35

我看到一些 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)

据我所知,每次应用Boosting算法,都会创建一个新的估算器。这是正确的吗?

如果是这样的话,那么num_boost_roundn_estimators两个参数应该是相等的,对吗?


13
是的,您说得对。请看下面的问题:如何使用Scikit-Learn包装器获取XGBoost和XGBoost匹配的预测? - Vivek Kumar
2个回答

23

xgboost的作者在xgbclassifier中也使用了n_estimatorsnum_boost_round,不知道为什么在同一个API中他想这样做。:( - agent18
1
我在同一次优化中不小心将它们都设置为了一个很高的数字,导致优化时间似乎倍增。我想知道将它们都设置为1000是否相当于将提升轮数设置为一百万。 - Wilmer E. Henao

0

XGBoost原生API中的num_parallel_tree相当于n_estimators。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接