gpt4 book ai didi

python - 是否有简单的方法来网格搜索而不在 python 中进行交叉验证?

转载 作者:IT老高 更新时间:2023-10-28 21:00:32 25 4
gpt4 key购买 nike

scikit-learn 中有一个绝对有用的类 GridSearchCV 可以进行网格搜索和交叉验证,但我不想进行交叉验证。我想在没有交叉验证的情况下进行网格搜索并使用整个数据进行训练。更具体地说,我需要在网格搜索期间使用“oob score”评估由 RandomForestClassifier 制作的模型。有简单的方法吗?还是我自己来上课?

点是

  • 我想用简单的方法进行网格搜索。
  • 我不想进行交叉验证。
  • 我需要使用整个数据进行训练。(不想分开训练数据和测试数据)
  • 我需要在网格搜索过程中使用 oob 分数进行评估。

最佳答案

我真的建议不要使用 OOB 来评估模型,但了解如何在 GridSearchCV() 之外运行网格搜索很有用(我经常这样做,以便保存 CV来自最佳网格的预测,便于模型堆叠)。我认为最简单的方法是通过 ParameterGrid() 创建参数网格,然后循环遍历每组参数。例如,假设您有一个名为“grid”的网格字典和一个名为“rf”的 RF 模型对象,那么您可以执行以下操作:

for g in ParameterGrid(grid):
rf.set_params(**g)
rf.fit(X,y)
# save if best
if rf.oob_score_ > best_score:
best_score = rf.oob_score_
best_grid = g

print "OOB: %0.5f" % best_score
print "Grid:", best_grid

关于python - 是否有简单的方法来网格搜索而不在 python 中进行交叉验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34624978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com