Python 的 XGBRegressor 与 R 的 XGBoost

Python's XGBRegressor vs R's XGBoost

我在同一数据集上使用具有相同参数的 python 的 XGBRegressor 和 R 的 xgb.train,但我得到了不同的预测。

我知道 XGBRegressor 使用 'gbtree' 并且我已经在 R 中进行了适当的比较,但是,我仍然得到不同的结果。

谁能指导我如何区分 2 and/or 找到 R 与 python 的 XGBRegressor 的等价物?

抱歉,如果这是一个愚蠢的问题,谢谢。

由于 XGBoost 在幕后使用决策树,因此如果您不修复随机种子,那么拟合过程会变得确定性,因此拟合之间的结果可能会略有不同。

您可以通过 R 中的 set.seed 和 Python 中的 numpy.random.seed 来执行此操作。

注意到 Gregor 的评论,您可能希望将 nthread 参数设置为 1 以实现完全确定性。