机器学习中的交叉验证

数据科学项目的生命周期中,模型训练是一个至关重要的阶段。尝试使用各种机器学习模型来训练数据集,这些模型可能是监督学习或无监督学习,具体取决于业务问题。面对众多可用于解决业务问题的模型,需要确保所选模型在未知数据上也能表现出色。因此,不能仅依赖评估标准来选择最佳模型。除了统计数据外,还需要其他信息来帮助选择最终用于生产的机器学习模型。

验证是评估通过计算变量间关系得到的数学发现是否可接受作为数据表示的过程。通常,在模型训练完成后,会对训练数据集进行残差评估,以估计模型的错误。这一步骤计算训练误差,通过比较预测结果和初始响应。然而,这一统计数据不能作为唯一依据,因为它只对训练数据有效。模型可能对数据来说太小或太大。

任何用于评估模型性能的统计数据都不能告诉,如果将模型应用于全新的数据集,它将如何表现。这就是交叉验证的用武之地,它是一种让发现模型在新数据上表现如何的方法。本文将探讨多种交叉验证过程,它们的优点和缺点。首先,定义交叉验证。

交叉验证是一种重采样策略,确保模型在应用于以前未知的数据时,其效率和正确性。这是一种评估机器学习模型的技术,涉及在可用输入数据集的子集上训练多个机器学习模型,并在子组上评估它们。

交叉验证有几种方法,但让看看交叉验证的基本功能:首先,将清洗后的数据集分成K个等大小的段。然后,将Fold-1视为测试段,其他K-1作为训练段,并计算测试分数。重复步骤2,对所有段进行操作,每次使用另一个段作为检查,同时保持在训练上。最后一步是计算所有段的分数平均值。

交叉验证的目的是将训练数据分为两组:一组用于训练,一组用于测试。训练集用于构建模型,测试集用于评估模型在生产中的表现。这是因为有可能出现构建的模型在训练数据上表现良好,但在实际世界中表现不佳的情况。没有交叉验证,就有可能构建一个在训练数据上表现良好,但在现实世界数据上表现不佳的模型。

交叉验证有几种类型,但让看看最基本的功能:首先,将清洗后的数据集分成K个等大小的段。然后,将Fold-1视为测试段,其他K-1作为训练段,并计算测试分数。重复步骤2,对所有段进行操作,每次使用另一个段作为检查,同时保持在训练上。最后一步是计算所有段的分数平均值。

交叉验证有几种类型,包括:

这种方法通过删除训练数据集的一个子集,将其传递给在剩余数据集上训练的模型来生成预测。然后计算错误估计,这表明模型在以前未知的数据集上的表现如何。这被称为留出技术。例如,收件箱中的电子邮件被分类为垃圾邮件或非垃圾邮件。

优点:

  • 这种方法完全独立于数据。
  • 这种方法只需要执行一次,因此计算成本较低。

缺点:

  • 由于数据量较少,性能更加不稳定。

在数据驱动的世界中,训练模型的数据永远不够用;此外,为了验证而删除一部分数据会增加模型欠拟合的风险,并使面临数据集中关键模式和趋势的风险,这会增加偏差。因此,寻求一种策略,既能为训练模型提供足够的数据,又能为验证集留出足够的数据。

K折交叉验证将数据分成k个子集。可以将其视为重复k次的留出技术,每次有一个k个子集作为验证集,其余k-1个子集作为训练集。错误平均在所有k次试验中,以确定模型的整体效率。

可以看到,每个数据点将恰好一次出现在验证集中,k-1次出现在训练集中。这有助于最小化偏差,因为大部分数据用于拟合,并且减少方差,因为大部分信息也用于验证集。

优点:

  • 这将有助于解决计算能力问题。
  • 模型可能不受数据中异常值的影响。
  • 它帮助克服不可预测性问题。

缺点:

  • 错误平衡的数据集将影响模型。

K折交叉验证方法对于不平衡的数据集不会按预期工作。当数据集不稳定时,需要对K折交叉验证过程进行小幅修改,以确保每个折叠具有与完整数据集几乎相同数量的每个输出类别的样本。分层K折交叉验证涉及在K折交叉验证中使用分层。

优点:

  • 它可以通过超参数调整增强许多模型。
  • 它帮助比较模型。
  • 它有助于减少偏差和方差。

缺点:

  • 执行成本高昂。

在这种方法中,从总共n个数据点的训练集中排除p个数据点,然后使用n-p个样本训练模型,并使用p个点进行验证。这个过程对所有可能的组合进行,然后平均误差。

  • 它不包含随机性。
  • 偏差将减少。
  • 这是一个完整的过程,计算上不可行。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485