在交叉验证之外调整超参数有多糟糕?


20

我知道在交叉验证之外执行超参数调整会导致对外部有效性的偏高估计,因为您用来衡量性能的数据集与用于调整功能的数据集相同。

我想知道的是,这个问题有多严重。我可以理解,这对于选择功能真的很不利,因为这使您可以调整大量的参数。但是,如果您使用的是LASSO之类的东西(它只有一个参数,即正则化强度),或者是一个没有特征选择的随机森林(它可以具有一些参数,却没有添加/删除噪声特征那么引人注目)?

在这些情况下,您对培训误差的估计有多乐观?

我非常感谢您提供任何有关此方面的信息-案例研究,论文,文献数据等。谢谢!

编辑:为澄清起见,我不是在谈论在训练数据上评估模型性能(即根本不使用交叉验证)。“交叉验证之外的超参数调整”是指仅使用交叉验证来估计每个模型的性能,而不包括外部第二交叉验证循环来校正超参数调整过程中的过拟合(与在训练过程中过度安装)。请参见此处的答案

Answers:


17

这种偏见的影响可能很大。某些机器学习会议中的开放式机器学习竞赛很好地证明了这一点。这些通常具有训练集,验证集和测试集。竞争对手看不到验证集或测试集的标签(很明显)。验证集用于确定排行榜上竞争对手的排名,在比赛进行过程中每个人都可以看到。根据测试数据,在比赛结束时排在排行榜首位的人在最终排名中的排名很低。这是因为他们已经调整了学习系统的超参数,以使其在排行榜上的性能最大化,并且这样做过度拟合了验证数据通过调整他们的模型。经验丰富的用户很少或根本不关注排行榜,并采用更严格的无偏性能评估来指导其方法。

我的论文中的示例(由Jacques提到)表明,这种偏差的影响与学习算法之间的差异具有相同的大小,因此简短的答案是,如果您使用的是偏差性能评估协议,真正有兴趣了解什么有效,什么无效。基本规则是“处理模型选择(例如,超参数调整)作为模型拟合过程的组成部分,并将其包括在用于性能评估的交叉验证的每一折中”。

正则化比特征选择不容易过度拟合的事实正是LASSO等是进行特征选择的好方法的原因。但是,偏差的大小取决于特征的数量,数据集的大小和学习任务的性质(即,有一个元素取决于特定的数据集,并且会因应用程序而异)。这取决于数据的性质,这意味着您可以通过使用无偏协议并比较差异来更好地估计偏差的大小(在这种特殊情况下,报告该方法对于过度拟合模型的选择很可靠)在自身)。

GC Cawley和NLC Talbot(2010),“模型选择中的过拟合和性能评估中的后续选择偏差”,《机器学习研究杂志》,第11期,第2079页,第5.2节。)


7
  • 您正在谈论的偏差仍然主要与过度拟合有关。
  • 您可以通过仅评估很少的模型来固定正则化超参数,并在合理的选择范围内降低复杂性,从而将风险保持在较低水平。

  • 正如@MarcClaesen指出的那样,您的学习曲线对您有所帮助,这将在一定程度上减轻偏差。但是学习曲线通常仅在极少数情况下是陡峭的,因此过拟合也是一个更大的问题。

最后,我希望这种偏见在很大程度上取决于

  • 数据(很难解决单变量问题...)并且
  • 您的经验和建模行为:我认为,如果您对模型类型和应用程序都有足够的经验,并且行为举止极佳并且不屈从于您,则有可能决定为模型选择大致合适的复杂性对更复杂模型的诱惑。但是,当然,我们不认识您,因此无法判断您的建模有多保守。
    另外,承认您的幻想统计模型是高度主观的,并且没有剩下要进行验证的案例通常不是您想要的。(即使在预期总体结果会更好的情况下也不行。)

我不使用LASSO(由于物理原因,变量选择对我的数据没有多大意义),但PCA或PLS通常效果很好。脊将是替代LASSO的替代方案,并且更适合数据类型。通过这些数据,我发现“快捷方式验证”与正确的独立(外部)交叉验证相比,存在更多的错误分类。但是,在这些极端情况下,我的经验表明,快捷方式验证看起来可疑,例如2%的错误分类=> 20%的交叉验证。

但是,我无法为您提供直接适用于您的问题的实数:

  • 到目前为止,我确实更关心在我的领域中发生的其他类型的“捷径”,这些捷径会导致数据泄漏,例如交叉验证光谱而不是患者(巨大偏差!我可以向您展示10%的错误分类-> 70%=猜测3类),或在交叉验证中不包括PCA(2-5%-> 20-30%)。
  • 在必须决定我可以负担得起的交叉验证是否应该花在模型优化或验证上的情况下,我总是根据经验确定验证并修复复杂性参数。PCA和PLS在正则化技术方面表现良好,因为复杂度参数(#个组件)与问题的物理/化学性质直接相关(例如,我可能很好地猜测到我期望有多少化学不同的物质组)。另外,出于理化的原因,我知道这些组件看起来应该有点像光谱,如果它们有噪音,我就太适合了。但是经验也可能是优化来自先前实验的旧数据集的模型复杂性,该实验通常足够相似,足以证明传输超参数然后使用新数据的正则化参数。
    这样,我无法声称拥有最佳模型,但可以声称对可以获得的性能进行了合理的估计。
    有了我的患者人数,无论如何都无法进行统计上有意义的模型比较(请记住,我的总患者人数低于建议的样本量,用于估计单个比例(根据@FrankHarrell在此给出的经验法则))。

您为什么不运行一些与您的数据尽可能接近的模拟并让我们知道会发生什么?


关于我的数据:我使用光谱数据。数据集通常很宽泛:几十个独立的案例(患者;尽管通常每个案例要进行大量测量。原始数据中大约有10³变异,我可以通过应用领域知识来削减非信息领域来减少到250个)超出我的光谱范围并降低光谱分辨率。


5

如果选择LASSO的超参数,则不需要嵌套的CV。超参数选择在单个/平面CV交互中完成。

λ

大号一世Ť一世λŤ一世大号一世

λ

(这不是选择超参数的唯一方法,而是最常见的方法-GC Cawley和NLC Talbot(2010)讨论并批评了“中位数”过程,“模型选择中的过拟合和随后的选择偏差性能评估中”,《机器学习研究杂志》,第11,第2079页,第5.2节。)

λλ

在测量此估计的偏差时,我知道两个实验结果(与合成数据集的真实泛化误差相比)

两者都开放。

如果满足以下条件,则需要嵌套的简历:

a)您想在LASSO算法和其他一些算法之间进行选择,特别是在它们也具有超参数的情况下

λ

λ

最后,嵌套CV并不是计算预期泛化误差的合理无偏估计的唯一方法。至少还有其他三个建议


2
您能否解释“没有用于超参数选择的简历”的含义?从您的书面文字中,我无法理解您是否要警告OP他们没有进行嵌套,或者您是否声明总体上不存在这样的东西。
cbeleites支持Monica

(+1),以简明扼要地说明问题并提供参考。但是,正如@cbeleites指出的那样,第一句话相当令人困惑:它似乎旨在纠正OP所没有的误解。
Scortchi-恢复莫妮卡

@cbeleites(和Scortchi)-我对OP“编辑:”的回答是(我相信)他声称他正在使用CV选择参数(“交叉验证仅是为了估计每个模型的性能,”),他担心自己没有使用嵌套的CV(“但不包括外部第二交叉验证循环来纠正超参数调整过程中的过拟合”)。我试图告诉他,参数选择中没有外部CV。
雅克·怀纳

@JacquesWainer:我相信他在估计过程的样本外性能(您的情况b)时想“纠正超参数调整过程中的过度拟合” ,而不是以某种方式使用嵌套的CV来校正选择的超参数值。无论如何,您的编辑使答案的开头更加清晰。
Scortchi-恢复莫妮卡

是的,我的意思是“为了纠正超参数调整过程中的过拟合[天真性能估计]”,而不是“为了过度拟合[调整的调整后的超参数]”或类似的东西。对不起,我感到困惑。我应该更明确地说,我担心错误估计,而不是参数选择。
本·库恩

2

如果您允许任何复杂的学习算法(例如SVM,神经网络,随机森林等),则可以达到100%的训练准确性(例如,通过弱/无正则化),从而导致绝对可怕的泛化性能。

κX一世XĴ=经验值-γX一世-XĴ2γ=100

简而言之,您可以轻松地在训练集上得到一个完美的分类器,而该分类器对独立测试集几乎没有任何帮助。那真是太糟糕了。


我不是在谈论在交叉验证之外训练模型。我正在谈论调整超参数(并且仍在使用交叉验证来估计每组超参数的性能)。我将编辑帖子以澄清这一点。
本·库恩

100

为什么您认为我正在考虑不使用交叉验证?我专门说:“ ...并且仍在使用交叉验证来估计每组超参数的性能。”
本·库恩

1
γ=γγ

2
我完全误解了你的问题。在进行编辑之前,这非常令人困惑。顺便说一句,您似乎感兴趣的偏见不一定是积极的。因为当有更多的训练数据时,许多方法都能产生更好的模型,这对于小型训练集和交叉验证尤为重要。
马克·克莱森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.