Machine learning 为什么K-折叠交叉验证将构建K+;1个型号?

Machine learning 为什么K-折叠交叉验证将构建K+;1个型号?,machine-learning,cross-validation,Machine Learning,Cross Validation,我已经阅读了下面的K-折叠交叉验证的一般步骤 一般程序描述如下: 随机洗牌数据集 将数据集拆分为k组(折叠) 对于每个唯一的组:将该组作为保持或测试数据集 将剩余的组作为训练数据集,在训练集上拟合模型,并在测试集上进行评估 保留评估分数并放弃模型 使用模型样本总结模型的技巧 评价分数 所以如果它是K折叠的,那么K模型就会被建立起来,对吗?但是为什么我从H2O的以下链接中读到它构建了K+1模型 可以说,“我在别处读过”这句话太含糊了(在哪里?),因为上下文确实很重要 最有可能的是,这些语句指的是

我已经阅读了下面的K-折叠交叉验证的一般步骤

一般程序描述如下:

  • 随机洗牌数据集
  • 将数据集拆分为k组(折叠)
  • 对于每个唯一的组:将该组作为保持或测试数据集
  • 将剩余的组作为训练数据集,在训练集上拟合模型,并在测试集上进行评估
  • 保留评估分数并放弃模型
  • 使用模型样本总结模型的技巧 评价分数
  • 所以如果它是K折叠的,那么K模型就会被建立起来,对吗?但是为什么我从H2O的以下链接中读到它构建了K+1模型

    可以说,“我在别处读过”这句话太含糊了(在哪里?),因为上下文确实很重要

    最有可能的是,这些语句指的是一些库,默认情况下,在完成CV适当的过程后,使用CV找到的超参数在整个训练数据上构建模型,以提供最佳性能;例如,请参见
    插入符号
    R程序包的相关部分,该程序包除了(如果需要)外,还返回
    最终模型

    最终模型

    使用最佳参数的拟合对象

    同样,scikit learn也有一个相关参数
    refit

    refit:boolean或string,默认值=True

    使用整个数据集上的最佳参数重新调整估计器

    [……]

    重新调整的估计器可在
    best\u estimator\u
    属性中使用,并允许在此
    GridSearchCV
    实例上直接使用
    predict

    但即便如此,所安装的模型也绝不仅仅是K+1:当您在实践中使用CV进行超参数调整时(请记住,CV还有其他用途),您最终将安装
    m*K
    模型,其中
    m
    是超参数组合集的长度(一轮中的所有K折叠都使用一组超参数运行)

    换句话说,如果您的hypeparameter搜索网格包含(例如)3个树数值和2个树深度值,则您将在CV过程中拟合
    2*3*K=6*K
    模型,并可能在最后将您的模型拟合到具有找到的最佳超参数的整个数据

    因此,总结一下:

    • 根据定义,每个K-fold CV过程只包括拟合K个模型,每个折叠一个,所有折叠都有固定的超参数

    • 对于超参数搜索的CV,将对搜索网格的每个超参数组合重复此过程,导致
      m*K
      fits

    • 找到最佳超参数后,您可能希望使用它们拟合最终模型,即再拟合1个

    导致共有
    m*K+1
    型号匹配

    希望这能有所帮助……

    可以说,“我在别处读过”这句话太含糊了(在哪里?),因为上下文确实很重要

    最可能的情况是,此类语句指的是一些库,默认情况下,在完成CV适当的程序后,这些库使用CV找到的超参数在整个训练数据上构建模型,以提供最佳性能;例如,请参见
    插入符号
    R包的相关内容,除了(如果要求)之外,还返回
    最终模型

    最终模型

    使用最佳参数的拟合对象

    同样,scikit learn也有一个相关参数
    refit

    refit:boolean或string,默认值=True

    使用整个数据集上的最佳参数重新调整估计器

    [……]

    重新调整的估计器可在
    best\u estimator\u
    属性中使用,并允许在此
    GridSearchCV
    实例上直接使用
    predict

    但即便如此,所安装的模型也绝不仅仅是K+1:当您在实践中使用CV进行超参数调整时(请记住,CV还有其他用途),您最终将安装
    m*K
    模型,其中
    m
    是超参数组合集的长度(一轮中的所有K折叠都使用一组超参数运行)

    换句话说,如果您的hypeparameter搜索网格包含(例如)3个树数值和2个树深度值,则您将在CV过程中拟合
    2*3*K=6*K
    模型,并可能在最后将您的模型拟合到具有找到的最佳超参数的整个数据

    因此,总结一下:

    • 根据定义,每个K-fold CV过程只包括拟合K个模型,每个折叠一个,所有折叠都有固定的超参数

    • 对于超参数搜索的CV,将对搜索网格的每个超参数组合重复此过程,导致
      m*K
      fits

    • 找到最佳超参数后,您可能希望使用它们拟合最终模型,即再拟合1个

    导致共有
    m*K+1
    型号匹配


    希望这有助于……

    挑剔:这是K-fold,而不是K-folder。比如“twofold”或“tenfold”,但使用K而不是2/10。与文件夹无关。@Amadan nice catch,我正在相应地编辑……当在添加答案后编辑您的问题时,最好这样做,并向回答者留下评论;也最好指出这样的引用的确切位置(链接的文档相当长),或者最好在这里引用它…无论如何,答案应该已经解决了您的问题,所以请接受它(或者如果没有,请留下具体的反馈)-谢谢…谢谢您的建议。我已经添加了我读到t的确切位置