首页 > 解决方案 > Gridsearchcv:内部逻辑

问题描述

我试图了解 Gridsearchcv 的逻辑是如何工作的。我查看了here,官方文档和源代码,但我无法弄清楚以下内容:

Gridsearchcv 背后的一般逻辑是什么?

澄清

  1. 如果我使用默认的 cv = 5,输入数据的拆分百分比是多少:训练、验证和测试?
  2. Gridsearchcv 多久执行一次这样的拆分,它如何决定哪个观察属于训练/验证/测试?
  3. 既然已经完成了交叉验证,那么超参数调整在哪里发挥了平均作用?即最佳超参数值是优化某种平均值的值吗?

这里的这个问题与我有同样的担忧,但我不知道这些信息是最新的,我不确定我是否了解那里的所有信息。例如,根据OP,我的理解是:

这种理解是否正确并且现在仍然适用?以及程序如何将原来的 25%-75% 拆分?

标签: pythonmachine-learningscikit-learn

解决方案


  1. 首先,您将数据拆分为训练和测试。测试集被省略用于模型的后期训练和优化。获取 75%的gridsearchcv数据并将它们分成 5 个切片。首先,它训练 4 个切片并在 1 个上进行验证,然后采用 4 个切片引入先前遗漏的集合进行验证并在新集合上进行测试等...... 5 次。

然后可以看到每次运行的性能+它们的平均值,以了解您的模型的整体行为方式。

  1. 由于您正在执行gridsearch,因此best_params将在建模结束时保存以预测您的测试集。
  2. 总而言之,在整个训练之后,将为您的模型选择并使用最佳参数,因此,您可以轻松地使用它们来predict(X_test)

在这里阅读更多。

  1. 通常,如果您不执行 CV,模型会尝试使用预设参数优化其权重,而遗漏的测试集将有助于评估模型性能。但是,对于真正的模型训练,将训练数据重新拆分为训练和验证非常重要,您可以在其中使用验证来超调模型的参数(手动)。然而,过度调优模型以在验证集上获得最佳性能是作弊。

理论 K 倍数

在此处输入图像描述

更多细节

在此处输入图像描述


推荐阅读