如何判断一个有监督的机器学习模型是否过拟合?

机器算法验证 机器学习
2022-02-02 00:40:00

谁能告诉我如何判断监督机器学习模型是否过拟合?如果我没有外部验证数据集,我想知道是否可以使用 10 折交叉验证的 ROC 来解释过度拟合。如果我有一个外部验证数据集,我接下来应该做什么?

3个回答

简而言之:通过验证您的模型。验证的主要原因是断言不会发生过拟合并估计广义模型性能。

过拟合

首先让我们看看过拟合到底是什么。通常通过最小化训练集上的一些损失函数来训练模型以适应数据集。然而,最小化这种训练错误将不再有利于模型的真实性能,而只会最小化特定数据集的错误。这实质上意味着该模型过于紧密地拟合到训练集中的特定数据点,试图对源自噪声的数据中的模式进行建模。这个概念称为过拟合下面显示了一个过度拟合的示例,您可以在其中看到黑色的训练集和背景中实际人口的更大集。在此图中,您可以看到蓝色模型与训练集的拟合过于紧密,从而对底层噪声进行了建模。 在此处输入图像描述

为了判断模型是否过拟合,我们需要估计模型在未来数据上的广义误差(或性能),并将其与我们在训练集上的性能进行比较。可以通过几种不同的方式来估计这个误差。

数据集拆分

估计泛化性能最直接的方法是将数据集划分为三个部分:训练集、验证集和测试集。训练集用于训练模型以拟合数据,验证集用于测量模型之间的性能差异以选择最佳模型,测试集用于断言模型选择过程不会过度拟合到第一个模型两套。

要估计过度拟合的数量,只需在最后一步评估您在测试集上感兴趣的指标,并将其与您在训练集上的表现进行比较。您提到了 ROC,但在我看来,您还应该查看其他指标,例如 brier 分数或校准图,以确保模型性能。这当然取决于你的问题。有很多指标,但这不是重点。

这种方法非常普遍和受人尊敬,但它对数据的可用性提出了很高的要求。如果您的数据集太小,您很可能会损失很多性能,并且您的结果将在拆分时出现偏差。

交叉验证

避免浪费大部分数据进行验证和测试的一种方法是使用交叉验证 (CV),它使用与训练模型相同的数据来估计泛化性能。交叉验证背后的想法是将数据集分成一定数量的子集,然后将这些子集中的每一个依次用作保留的测试集,同时使用其余数据来训练模型。对所有折叠的指标进行平均将为您提供模型性能的估计。然后通常使用所有数据训练最终模型。

然而,CV 估计并不是无偏的。但是你使用的折叠越多,偏差就越小,但你会得到更大的方差。

与数据集拆分一样,我们得到模型性能的估计值,并估计过度拟合,您只需将 CV 中的指标与评估训练集指标获得的指标进行比较。

引导程序

bootstrap 背后的想法类似于 CV,但我们不是将数据集拆分为多个部分,而是通过从整个数据集中重复抽取训练集并替换并在每个 bootstrap 样本上执行完整的训练阶段,在训练中引入随机性。

最简单的引导验证形式只是评估在训练集中找不到的样本(即被遗漏的样本)的指标,并对所有重复进行平均。

这种方法会给你一个模型性能的估计,在大多数情况下,它比 CV 的偏差更小。同样,将其与您的训练集性能进行比较,您就会得到过度拟合。

有一些方法可以改进引导验证。已知 .632+ 方法可以对广义模型性能提供更好、更稳健的估计,同时考虑过拟合。(如果您对原始文章感兴趣,可以阅读:交叉验证的改进:632+ 引导方法

我希望这回答了你的问题。如果您对模型验证感兴趣,我建议您阅读《统计学习的要素:数据挖掘、推理和预测》一书中关于验证的部分,该书可在线免费获得。

以下是估计过拟合程度的方法:

  • 获得内部误差估计。重新替换(= 预测训练数据),或者如果您进行内部交叉“验证”以优化超参数,那么该度量也会引起人们的兴趣。
  • 获得独立的测试集误差估计。通常,建议重新采样(迭代交叉验证或自*处理步骤,例如居中、缩放等。此外,如果您有“分层”(也称为“集群)数据结构,例如对同一患者的重复测量(=> 重新采样患者),请确保在最高级别进行拆分)。
  • 然后比较“内部”误差估计看起来比独立误差估计好多少。

这是一个示例:
过拟合
Trefferrate = 命中率(正确分类百分比),Varinzahl = 变量数(= 模型复杂度)
符号:. 重新替换,+ 超参数优化器的内部留一估计,o 独立于患者级别的外部交叉验证

这适用于 ROC,或性能指标,例如 Brier 的分数、敏感性、特异性、......

* 我不建议在这里使用 .632 或 .632+ 引导程序:它们已经混合了重新替换错误:您无论如何都可以稍后根据重新替换和引导外估计来计算它们。

过拟合只是考虑统计参数的直接结果,因此获得的结果作为有用的信息,而不检查它们不是以随机方式获得的。因此,为了估计是否存在过拟合,我们必须在与真实数据库等效但具有随机生成值的数据库上使用该算法,重复此操作多次,我们可以估计以随机方式获得相同或更好结果的概率. 如果这个概率很高,我们很可能处于过度拟合的情况。例如,四次多项式与平面上的 5 个随机点的相关性为 1 的概率是 100%,因此这种相关性是无用的,我们处于过度拟合的情况。