我已经知道“xgboost.XGBRegressor
是XGBoost的Scikit-Learn Wrapper接口(interface)。”
但是它们还有其他区别吗?
最佳答案
xgboost.train
是用于通过梯度提升方法训练模型的低级API。xgboost.XGBRegressor
和xgboost.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
函数来完成XGBClassifier
和xgboost.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/