代码之家  ›  专栏  ›  技术社区  ›  yurnero

Gridsearchcv:内部逻辑

  •  0
  • yurnero  · 技术社区  · 4 年前

    我试图理解Gridsearchcv的逻辑是如何工作的。我看着 here ,这位官员说 documentation ,以及源代码,但我无法理解以下内容:

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

    澄清 :

    1. 如果我使用默认的cv=5,那么输入数据的百分比分割是多少 分为:培训、验证和测试?
    2. Gridsearchcv多久执行一次这样的拆分,它如何决定哪些观察结果属于训练/验证/测试?
    3. 既然正在进行交叉验证,那么在超参数调整中,平均值在哪里起作用呢?i、 e.最优超参数值是优化某种平均值的值吗?

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

    • 测试集是输入数据集的25%,并且是创建的 一旦 .
    • 这个 联盟 相应地创建了列车组和验证集 一旦 这个联合是原始数据的75%。
    • 然后,程序创建5(因为cv=5)进一步将这75%分成60%序列和15%验证
    • 优化的超参数值是优化这5个拆分上某些度量的平均值的值。

    这种理解正确吗?现在仍然适用吗?那么这个过程是如何将原来的25%-75%分割的呢?

    1 回复  |  直到 4 年前
        1
  •  1
  •   ombk    4 年前
    1. 首先,将数据分为训练和测试。测试集留作后期训练和模型优化之用。这个 gridsearchcv 获取75%的数据并将其分成5个部分。首先它训练4个切片并在1上进行验证,然后取4个切片引入之前遗漏的集进行验证并在新集上进行测试等等。。。5次。

    然后可以看到每次运行的性能+它们的平均值,从而全面了解模型的行为。

    1. 既然你在做一个 gridsearch ,的 best_params 将在建模结束时保存以预测测试集。
    2. 综上所述,在整个训练之后,我们会为您的模型选择和使用最佳的参数,因此,您可以方便地使用它们来 predict(X_test)

    Read more here.

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

    理论K-褶皱

    enter image description here

    更多细节

    enter image description here