Python Gridsearchcv:内部逻辑

Python Gridsearchcv:内部逻辑,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,我试图理解Gridsearchcv的逻辑是如何工作的。我查看了文件、官方文件和源代码,但无法理解以下内容: Gridsearchcv背后的一般逻辑是什么 澄清: 如果我使用默认的cv=5,输入数据的百分比分割是多少 分为:培训、验证和测试 Gridsearchcv多久执行一次这样的拆分,它如何决定哪些观察结果属于训练/验证/测试 由于正在进行交叉验证,在超参数调整中,平均值在哪里发挥作用?i、 e.最优超参数值是优化某种平均值的值吗 这个问题和我一样担心,但我不知道信息的最新程度,我也不确定我是

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

Gridsearchcv背后的一般逻辑是什么

澄清

  • 如果我使用默认的cv=5,输入数据的百分比分割是多少 分为:培训、验证和测试
  • Gridsearchcv多久执行一次这样的拆分,它如何决定哪些观察结果属于训练/验证/测试
  • 由于正在进行交叉验证,在超参数调整中,平均值在哪里发挥作用?i、 e.最优超参数值是优化某种平均值的值吗
  • 这个问题和我一样担心,但我不知道信息的最新程度,我也不确定我是否理解那里的所有信息。例如,根据OP,我的理解是:

    • 测试集占输入数据集的25%,创建一次
    • 列车集和验证集的联合相应地创建一次,该联合为原始数据的75%
    • 然后,程序创建了5个(因为cv=5)进一步将这75%分成60%的序列和15%的验证
    • 优化的“超参数”值是优化这5次拆分中某些度量的平均值的值
    这种理解正确吗?现在仍然适用吗?那么这个程序是如何将原来的25%-75%分割的呢

  • 首先,将数据拆分为训练和测试。测试集留作模型的后期训练和优化。
    gridsearchcv
    获取75%的数据,并将它们分成5个部分。首先,它训练4个切片并在1上进行验证,然后取4个切片,介绍以前遗漏的一组,以便在新的一组上进行验证和测试,等等。。。5次
  • 然后可以查看每次运行的性能+它们的平均值,以了解模型的总体行为

  • 由于您正在执行
    gridsearch
    ,因此将在建模结束时保存
    最佳参数
    ,以预测测试集
  • 总之,在整个培训之后,将为您的模型选择并使用最佳参数,因此,您可以轻松地使用它们来预测(X_测试)
  • 通常,如果不执行CV,模型将尝试使用预设参数优化其权重,忽略的测试集将有助于评估模型性能。但是,对于真实的模型训练,将训练数据重新拆分为训练和验证是非常重要的,您可以使用验证来超调模型的参数(手动)。然而,过度调整模型以在验证集上获得最佳性能是欺骗
  • 理论K-褶皱

    更多详细信息


    看来我对这个问题的理解是正确的。请进行一些跟进:25%-(5乘以60%+15%)的分割是随机决定的吗?程序何时使用25%的测试数据?25%的测试数据未使用,也未提供给模型,因此您可以随时在其上测试您的模型。。。你可以今天、明天或明年做。关于60%-15%的分割,理论上,你以某种方式(比如说随机)将数据分割成5个分割(仅一次),然后开始迭代,在4上进行训练,在1上进行验证……我明白了,所以我有一个误解。我以为Gridsearchcv会提供我的全部数据,然后将其自身划分为训练+验证+测试。你是说我只是想给它提供我,用户,决定训练+验证的东西。相应地,相对于输入数据,分割实际上是80%的训练+20%的验证。这是正确的吗?@yurnero 1)训练,测试=训练测试分离(blabla),将训练传送到5cv,让它变魔术。关于你的问题,因为你给出了5分,那么是80%20%