为什么我每次运行参数校正都会得到不同的结果

问题描述 投票:0回答:2

我是机器学习的新手,谁能给我解释一下为什么我每次运行模型和调整超参数时,我都使用RandomSearch,当我得到好的参数并应用它们时,它会得到很好的结果。但是再次运行的时候,在tunning parameters中,虽然和之前一样的参数,但是精度比上次低了,大家可以解释一下吗?

XGboost - 这是我在这个模型中的最好成绩,然后我运行的任何时候都低于那个。

this picture is my best result

任何人都可以解释如何获得更好的结果吗?

python xgboost random-seed grid-search
2个回答
0
投票

我认为这个问题是由 XGBoost 引起的。 XGBoost 是决策树的集合体,它会选择特征来随机构建树,每次构建新的 XGBoost 时,模型都会发生变化,因此最佳超参数也会发生变化。


0
投票

你说你使用了随机搜索。随机搜索是一种在调整过程中为模型选择超参数随机组合的技术。由于它是 random,每次运行代码时选择的组合可能不同,这可能导致不同的准确性结果。

为确保每次运行代码时都能获得一致的结果,您可以设置“随机状态”或“种子”。这是一个固定数字,可确保随机过程从同一点开始,这有助于每次都产生相同的结果。

要每次都获得相同的结果,您不仅需要为随机搜索设置随机状态,还需要在执行采样的任何地方设置随机状态:例如呼叫

train_test_split
时,呼叫
StratifiedKFold
时或训练您的
XGBClassifier
时。

© www.soinside.com 2019 - 2024. All rights reserved.