我在同一个数据集中使用python的XGBRegressor和R的xgb.train具有相同的参数,并且我得到了不同的预测。
我知道XGBRegressor使用' gbtree'我在R中做了适当的比较,但是,我仍然得到不同的结果。
任何人都可以指导我如何区分2和/或找到R与Gthon的XGBRegressor等价吗?
很抱歉,如果这是一个愚蠢的问题,谢谢。
答案 0 :(得分:1)
由于XGBoost使用了决策树,如果你不修复随机种子,那么它可以在拟合之间给出略微不同的结果,因此拟合过程变得具有确定性。
您可以通过R中的set.seed
和Python中的numpy.random.seed
来完成此操作。
注意到Gregor的评论,您可能希望将nthread
参数设置为1以实现完全确定性。