XGBoost R与python-不同的性能和功能重要性

XGBoost R与python-不同的性能和功能重要性,python,r,xgboost,Python,R,Xgboost,我在工作中使用的xgboost有这个问题。我的任务是将当前在R中运行的一段代码移植到python 代码的作用: 我的目标是使用XGBoost来确定增益最大的功能。我确保XGBoost的输入在R和python中是相同的。XGBoost大约运行100次(在不同的数据上),每次我按增益提取30个最佳特征 我的问题是: R和python中的输入是相同的。然而python和R输出的特性大不相同(就每轮的特性总数和选择的特性而言)。它们只共享大约50%的功能。我的参数是相同的,并且我不使用任何样本,所以没有

我在工作中使用的xgboost有这个问题。我的任务是将当前在R中运行的一段代码移植到python

代码的作用: 我的目标是使用XGBoost来确定增益最大的功能。我确保XGBoost的输入在R和python中是相同的。XGBoost大约运行100次(在不同的数据上),每次我按增益提取30个最佳特征

我的问题是: R和python中的输入是相同的。然而python和R输出的特性大不相同(就每轮的特性总数和选择的特性而言)。它们只共享大约50%的功能。我的参数是相同的,并且我不使用任何样本,所以没有随机性

另外,我注意到的另一件事是,与具有相同参数的R相比,python中的XGBoost速度较慢。这是一个已知的问题吗

我一直想四处看看,但没有发现有人有类似的问题。我不能共享数据或代码,因为它是机密的。有人知道为什么这些功能差异如此之大吗

R版本:3.4.3

XGBoost R版本:0.6.4.1

python版本:3.6.5

XGBoost python版本:0.71


在Windows上运行。

可以在R代码中设置内部种子,但不能在Python代码中设置

更大的问题可能是Python和R也可能使用不同的随机数生成器,因此尽管总是设置内部和外部种子,但可能会得到不同的序列。线程可能在这方面有所帮助


我还想冒险猜测,在一个模型中未选择的变量提供了与在另一个模型中选择的变量相似的信息,其中以某种方式交换变量不会显著影响模型性能。虽然我不知道R模型和Python模型的性能是否相同?

就像今年早些时候不得不这样做的人一样,但我所想的是R xgboost建模明显优于Python建模python@AdamWarner你有没有找到原因?您试过xgboost.train和sklrean XGBClassifier或XGBRegressor吗?有显著差异吗?为了澄清,我在python中同时使用了xgboost.train和XGBClassifier。xgboost.train没有seed参数(但它在运行两次后给了我相同的结果,所以我想它确实有一个默认值)。然而,在XGBC中,我确实将其设置为0,它的性能甚至比xgboost.train还要差。我使用xgboost仅提取最佳预测值,然后将过滤后的数据集输入神经网络。这一部分还没有完成,所以性能是否不同还有待观察,如果是的话,差异有多大,对谁有利。无论如何,谢谢你的回答!