任何人都可以向我解释为什么每次我运行模型并使用
RandomSearch
调整超参数时,我都会获得良好的参数并应用它们,从而产生良好的结果。但是当我再次运行时,调整参数,尽管与之前相同,但精度却比上次低?谁能给我解释一下吗?
XGBoost
- 这是我使用此模型的最佳结果,但任何时候我再次运行它,结果都会低于此。
谁能解释一下如何获得更好的结果?
你说你使用了随机搜索。随机搜索是一种在调优过程中为模型选择随机超参数组合的技术。由于它是随机,每次运行代码时选择的组合可能会有所不同,这可能会导致不同的准确度结果。
为了确保每次运行代码时获得一致的结果,您可以设置“随机状态”或“种子”。这是一个固定数字,可确保随机过程从同一点开始,这有助于每次产生相同的结果。
为了每次都获得相同的结果,您不仅必须为随机搜索设置随机状态,而且还必须在执行采样的任何地方设置:例如呼叫
train_test_split
时、呼叫 StratifiedKFold
时或训练您的 XGBClassifier
时。
我认为这个问题是由XGBoost引起的。 XGBoost 是决策树的集合,它随机选择特征来构建树,每次构建新的 XGBoost 时,模型都会改变,因此最佳超参数也会改变。