Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python XgBoost精度结果在每次运行时都不同,参数相同。我怎样才能使它们保持不变?_Python_Performance_Machine Learning_Xgboost - Fatal编程技术网

Python XgBoost精度结果在每次运行时都不同,参数相同。我怎样才能使它们保持不变?

Python XgBoost精度结果在每次运行时都不同,参数相同。我怎样才能使它们保持不变?,python,performance,machine-learning,xgboost,Python,Performance,Machine Learning,Xgboost,XGB多类分类的“merror”和“logloss”结果在每次运行时相差约0.01或0.02,参数相同。这正常吗 当我使用相同的参数运行XGB时,我希望“merror”和“logloss”保持不变,这样我就可以精确地评估模型(例如,当我添加新功能时) 现在,如果我添加了一个新功能,我真的无法判断它是否对我的模型的准确性产生了积极影响,因为每次运行时,我的“merror”和“logloss”都会有所不同,而不管我是否对模型做了任何更改或上次运行后输入的数据 我应该尝试解决这个问题吗?如果我应该,我

XGB多类分类的“merror”和“logloss”结果在每次运行时相差约0.01或0.02,参数相同。这正常吗

当我使用相同的参数运行XGB时,我希望“merror”和“logloss”保持不变,这样我就可以精确地评估模型(例如,当我添加新功能时)

现在,如果我添加了一个新功能,我真的无法判断它是否对我的模型的准确性产生了积极影响,因为每次运行时,我的“merror”和“logloss”都会有所不同,而不管我是否对模型做了任何更改或上次运行后输入的数据


我应该尝试解决这个问题吗?如果我应该,我该怎么做?

设法解决了这个问题。首先,我将XgBoost的“seed”参数设置为固定值,正如Hadus所建议的那样。然后我发现我在笔记本中使用了sklearn的train_test_split函数,没有将random_state参数设置为固定值。因此,我将random_state参数设置为22(您可以使用任何您想要的整数),现在我得到的结果是常量。

这一定与随机数有关。可能与初始权重的设置方式有关。。。无论如何,设定一个恒定的种子将达到目的。不幸的是,我不知道如何使用XgBoost做到这一点。不过,这应该不难发现。祝你好运类似于:当您创建分类器实例时,应该有一个名为
random\u state
的参数,您应该将该参数设置为一个数字。