机器学习中的交叉验证:4 种类型的交叉验证
已发表: 2020-11-30目录
介绍
模型开发是数据科学项目生命周期中的关键步骤,我们将尝试使用基于业务问题的监督或无监督算法的不同类型机器学习模型来训练我们的数据集。
我们知道我们有很多模型可以用来解决业务问题,我们需要确保我们在这个阶段结束时选择的任何模型都应该在看不见的数据上表现良好。 因此,我们不能只使用评估指标来选择性能最佳的模型。
除了可以帮助我们决定可以部署到生产环境的最终机器学习模型的指标之外,我们还需要更多的东西。
确定计算变量之间关系的数学结果是否可以作为数据描述的过程称为验证。 通常,模型的误差估计是在训练数据集上训练模型后进行的,更广为人知的是残差评估。
在这个过程中,我们通过计算预测响应和原始响应之间的差异来测量训练误差。 但是这个指标不能被信任,因为它只适用于训练数据。 模型可能欠拟合或过拟合数据。
因此,这种评估技术或任何其他评估指标的问题在于,它不能说明模型对看不见的数据集的执行情况。 有助于了解我们模型的技术称为交叉验证。

在本文中,我们将更多地了解不同类型的交叉验证技术、每种技术的优缺点。 让我们从交叉验证的定义开始。
交叉验证
交叉验证是一种重采样技术,有助于使我们的模型确定其对看不见的数据的效率和准确性。 它是一种通过在可用输入数据集的子集上训练几个其他机器学习模型并在数据集的子集上评估它们来评估机器学习模型的方法。
我们有不同类型的交叉验证技术,但让我们看看交叉验证的基本功能:第一步是将清理后的数据集划分为 K 个大小相等的分区。
- 然后我们需要将Fold-1作为测试折叠,而另一个K-1作为训练折叠并计算测试折叠的分数。
- 我们需要对所有折叠重复步骤 2,将另一个折叠作为测试,同时保持作为火车。
- 最后一步是取所有折叠分数的平均值。
阅读:面向初学者的机器学习项目
交叉验证的类型
1. 坚持法
该技术适用于删除训练数据集的一部分并将其发送到在其余数据集上训练的模型以获得预测。 然后我们计算误差估计,它告诉我们模型在看不见的数据集上的表现。 这被称为保持方法。
优点
- 此方法完全独立于数据。
- 该方法只需要运行一次,因此具有较低的计算成本。
缺点
- 鉴于数据规模较小,性能会受到较大差异的影响。
2. K 折交叉验证
在数据驱动的世界中,永远没有足够的数据来训练你的模型,除此之外,删除其中的一部分进行验证会带来更大的欠拟合问题,并且我们可能会丢失数据集中的重要模式和趋势,进而增加偏差。 因此,理想情况下,我们需要一种方法,为模型训练提供大量数据,并为验证集留下大量数据。

在 K-Fold 交叉验证中,将数据划分为 k 个子集,或者我们可以将其视为重复 k 次的保持方法,这样每次将 k 个子集中的一个用作验证集,另一个 k-1子集作为训练集。 误差在所有 k 次试验中取平均值,以获得我们模型的总效率。
我们可以看到,每个数据点将恰好在验证集中出现一次,并且将在训练集中出现 k-1 次。 这有助于我们减少偏差,因为我们使用大部分数据进行拟合,并减少方差,因为大部分数据也用于验证集中。
优点
- 这将有助于克服计算能力的问题。
- 如果数据中存在异常值,模型可能不会受到太大影响。
- 它帮助我们克服可变性问题。
缺点
- 不平衡的数据集会影响我们的模型。
3.分层 K 折交叉验证
对于不平衡的数据集,K 折交叉验证技术将无法按预期工作。 当我们有一个不平衡的数据集时,我们需要对 K 折交叉验证技术进行轻微更改,以便每个折包含与完整的每个输出类的样本大致相同的层。 在 K 折交叉验证中使用层的这种变体称为分层 K 折交叉验证。
优点
- 它可以使用超参数调整来改进不同的模型。
- 帮助我们比较模型。
- 它有助于减少偏差和方差。
4. Leave-P-Out 交叉验证
在这种方法中,我们从总共 n 个数据点中的训练数据中保留 p 个数据点,然后使用 np 个样本来训练模型,并使用 p 个点作为验证集。 对所有组合重复此操作,然后平均误差。

优点
- 它具有零随机性
- 偏差会更低
缺点
- 这种方法是穷举的并且在计算上是不可行的。
另请阅读:机器学习职业
结论
在本文中,我们了解了机器学习模型验证在数据科学项目生命周期中的重要性,了解了什么是验证和交叉验证,探索了不同类型的交叉验证技术,了解了一些这些技术的优点和缺点。
如果您有兴趣了解有关机器学习的更多信息,请查看 IIIT-B 和 upGrad 的机器学习和人工智能 PG 文凭,该文凭专为工作专业人士设计,提供 450 多个小时的严格培训、30 多个案例研究和作业、IIIT- B 校友身份、5 个以上实用的实践顶点项目和顶级公司的工作协助。
机器学习中对交叉验证的需求是什么?
交叉验证是一种机器学习技术,其中训练数据分为两部分:训练集和测试集。 训练集用于构建模型,测试集用于评估模型在生产中的表现。 这样做的原因是,您构建的模型可能在现实世界中表现不佳。 如果您不交叉验证您的模型,则存在您构建的模型在训练数据上运行良好但在实际数据上表现不佳的风险。
什么是 k 折交叉验证?
在机器学习和数据挖掘中,k 折交叉验证,有时称为留一法交叉验证,是一种交叉验证形式,其中训练数据被分成 k 个近似相等的子集,每个 k- 1 个子集依次用作测试数据,其余子集用作训练数据。 K 通常为 10 或 5。K 折交叉验证在模型选择中特别有用,因为它减少了泛化误差估计的方差。
交叉验证的优点是什么?
交叉验证是一种验证形式,其中数据集被划分为训练集和测试集(或交叉验证集)。 然后使用该集合来测试模型的准确性。 换句话说,它为您提供了一种方法,可以根据您的数据样本来衡量您的模型有多好。 例如,它用于估计由训练输入和测试输入之间的差异引起的模型误差。
