我已经知道“xgboost.XGBRegressor是XGBoost的Scikit-Learn Wrapper接口(interface)。”

但是它们还有其他区别吗?

最佳答案

xgboost.train 是用于通过梯度提升方法训练模型的低级API。
xgboost.XGBRegressorxgboost.XGBClassifier是准备DMatrix并传递相应的目标函数和参数的包装器(如他们称为Scikit-Learn的包装器)。最后,fit调用简单地归结为:

self._Booster = train(params, dmatrix,
                      self.n_estimators, evals=evals,
                      early_stopping_rounds=early_stopping_rounds,
                      evals_result=evals_result, obj=obj, feval=feval,
                      verbose_eval=verbose)

这意味着可以通过基础XGBRegressor函数来完成XGBClassifierxgboost.train可以完成的所有。另一方面,显然不正确,例如,xgboost.train API不支持XGBModel的一些有用参数。显着差异列表包括:
  • xgboost.train允许设置在每次迭代结束时应用的callbacks
  • xgboost.train允许通过xgb_model参数继续训练。
  • xgboost.train不仅允许最小化eval函数,而且还可以最大化。
  • 关于python - xgb.train和xgb.XGBRegressor(或xgb.XGBClassifier)之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47152610/

    10-12 23:55