【机器学习:机器学习中平衡】机器学习中平衡和不平衡数据集简介

在这里插入图片描述

在确定模型性能时,机器学习工程师需要知道他们的分类模型是否能够准确预测。然而,由于准确性悖论,他们永远不应该仅仅依赖准确性来评估模型的性能。

准确性的问题在于,它不一定是确定模型预测结果的良好指标。这是违反直觉的(因此出现悖论),但根据训练过程中遇到的数据,模型可能会偏向某些预测,从而导致准确预测的比例很高,但整体性能较差。模型可能会报告具有非常准确的预测,但实际上,这种准确性可能仅反映了它在不平衡数据集上训练时学习预测的方式。

什么是不平衡数据?

分类模型尝试将数据分类到不同的桶中。在不平衡的数据集中,一个存储桶占训练数据集的很大一部分(多数类),而另一个存储桶在数据集中的代表性不足(少数类)。在不平衡数据上训练的模型的问题在于,该模型了解到,通过一致地预测多数类,可以实现高精度,即使在将模型应用于现实场景时,识别少数类是同等或更重要的。

考虑为预测医疗状况的模型收集训练数据的情况。收集到的大部分患者数据(假设 95%)可能会属于健康数据,而患病患者只占数据的一小部分。在训练过程中,分类模型了解到,如果它预测遇到的每条数据都是“健康”的,那么它的准确率可以达到 95%。这是一个大问题,因为医生真正希望模型做的是识别那些患有某种疾病的患者。

‍为什么平衡数据集很重要

尽管在不平衡数据上训练的模型经常成为准确性悖论的受害者,但优秀的机器学习团队会使用其他指标(例如精度、召回率和特异性)来分解准确性。这些指标回答了有关模型性能的不同问题,例如“在所有患病患者中,实际预测有多少人患病?” (记起)。不平衡的数据可能会扭曲每个指标的结果,因此跨多个指标测试模型的性能是确定模型实际效果的关键。

不平衡的数据集给预测建模带来了挑战,但它们实际上是一个常见且可预见的问题,因为现实世界充满了不平衡的例子。

平衡数据集使训练模型变得更容易,因为它有助于防止模型偏向某一类。换句话说,模型将不再仅仅因为包含更多数据而偏向多数类。

我们将在整篇文章中使用以下运行示例来解释这个概念和其他概念。在这个例子中,猫来自多数阶层,狗来自少数阶层。

在这里插入图片描述

不平衡数据集的示例

现在,让我们看看机器学习团队可以用来平衡数据的一些策略。

收集更多数据

当机器学习团队采用以数据为中心的人工智能方法时,他们知道数据是驱动模型的工具。一般来说,训练模型所需的数据越多,其性能就越好。然而,选择正确的数据并确保其质量对于提高模型性能也至关重要。

因此,当您遇到不平衡的数据集时,要问的第一个问题是:我可以从代表性不足的类别中获取更多高质量的数据吗?

机器学习团队可以采用两种方法来获取更多数据。他们可以尝试从现实世界的例子中获取更多“真实”数据,也可以使用游戏引擎或生成对抗网络来制造合成数据。

在我们的运行示例中,新数据集将如下所示:

在这里插入图片描述

欠采样

如果您无法获得更多数据,那么是时候开始实施旨在平衡班级的策略了。

欠采样是一种平衡策略,我们从代表性过高的类中删除样本,直到少数类和多数类的数据分布相等。尽管在大多数情况下欠采样是不明智的,但它具有一些优点:实现起来相对简单,并且可以提高模型的运行时间和计算成本,因为它减少了训练数据量。

然而,欠采样必须小心进行,因为从原始数据集中删除样本可能会导致有用信息的丢失。同样,如果原始数据集一开始就不包含太多数据,那么采样不足会使您面临开发过拟合模型的风险。

例如,如果原始数据集仅包含 100 个样本(80 个来自多数类,20 个来自少数类),而我从多数类中删除 60 个样本以平衡数据集,那么我就忽略了收集到的 60% 的数据。该模型现在只有 40 个数据点可供训练。由于数据如此之少,模型很可能会记住数据训练数据,并且在遇到从未见过的数据时无法进行泛化。

通过欠采样,我们运行示例中的数据集可能如下所示,这显然并不理想。

在这里插入图片描述

在过度拟合的风险下实现平衡的数据集是一个很大的权衡,因此机器学习团队需要仔细考虑他们使用欠采样的问题类型。

假设代表性不足的类别的样本数量较少。在这种情况下,使用欠采样可能不是一个好主意,因为平衡数据集的大小会增加过度拟合的风险。

然而,当模型试图解决的问题相对简单时,欠采样可能是一个不错的选择。例如,如果两个类中的样本很容易区分,因为它们没有太多重叠,那么模型不需要那么多的数据来学习进行预测,因为它不太可能将一个类与另一个类混淆,并且它不太可能在数据中遇到噪音。

当训练模型来预测简单的表格数据问题时,欠采样可能是一个不错的选择。然而,大多数计算机视觉问题对于欠采样来说都过于复杂。考虑基本的图像分类问题。黑猫和白猫的图像对于人类来说可能看起来非常不同。尽管如此,计算机视觉模型仍然会吸收图像中的所有信息:背景、猫占据图像的百分比、像素值等等。对人眼来说看似简单的区别在模型眼中却是一个复杂得多的决定。

一般来说,机器学习团队在丢弃数据之前会三思而后行,因此他们通常会青睐其他平衡数据的方法,例如过采样。

过采样

过采样会增加少数类中的样本数量,直到其构成等于多数类的构成。机器学习团队会复制代表性不足的类别中的样本,以便模型遇到每个类别中相同数量的样本,从而降低其偏向多数类别的可能性。

与欠采样不同,过采样不涉及丢弃数据,因此它可以帮助 ML 团队解决数据不足的问题,而不会有丢失重要信息的风险。然而,由于少数类仍然由有限数量的唯一数据点组成,因此该模型容易记忆数据模式并导致过度拟合。

为了降低过度拟合的风险,机器学习团队可以扩充数据,以便少数类别中的样本副本与原始样本不同。在图像数据上训练计算机视觉模型时,他们可以组合任意数量的增强功能,例如旋转图像、更改图像亮度、裁剪图像、增加图像清晰度或模糊度等,以模拟更多样化的数据集。甚至算法的设计也是为了帮助找到数据集的最佳增强。

通过过采样,我们运行示例中的数据集可能如下所示:

在这里插入图片描述

衡量损失函数的权重

作为过采样的替代方法,您可以调整损失函数以解决类别分布不均匀的问题。在分类模型中,未加权损失函数将所有错误分类视为类似错误,但惩罚权重指示算法根据错误是在预测少数类还是多数类时发生而以不同方式处理预测错误。添加惩罚权重会向模型中注入故意偏差,从而阻止模型优先考虑多数类别。

如果算法对少数类的权重较高,而对多数类的权重较低,那么它对代表性不足的类别的错误分类的惩罚将比对代表性过高的类别的错误分类的惩罚更大。通过惩罚权重,机器学习团队可以使模型在训练过程中更加关注少数类别,从而在类别之间建立平衡。

让我们看一个简单的例子。假设您有六个训练样本,其中五个样本是猫,一个是狗。如果要进行过采样,您将创建一个包含五只不同的猫和狗的五个副本的数据集。当您在此过采样数据集上计算损失函数时,猫和狗对损失的贡献相同。

然而,通过损失加权,您不会过度采样,而只需将每个单独样本的损失与其类别的反样本数 (INS) 相乘

在这里插入图片描述

这样,五个猫样本中的每一个都会贡献五分之一的损失,而狗样本的损失不会按比例缩小。反过来,猫类和狗类的贡献是相等的。

理论上,这种方法相当于过采样。这里的优点是只需要几行简单的代码即可实现,甚至适用于多类问题。

尽管机器学习工程师通常将这种方法与数据增强一起使用,但由于模型在许多情况下仍然可以记住少数类别,因此过度拟合问题可能会持续存在。为了缓解这个问题,他们可能需要使用模型正则化(例如 dropout)或考虑向模型添加惩罚权重。

‍使用各种指标来测试模型性能

每次 ML 团队在更改的数据集上重新训练模型时;他们应该使用不同的指标来检查模型的性能。

所有上述技术都需要某种形式的反复试验,因此在从未见过的数据集上测试模型对于确保在平衡数据集上重新训练模型获得可接受的性能水平至关重要。

请记住,模型在训练数据上的性能分数并不反映它“在野外”的表现。足够复杂的模型可以获得 100% 的准确度、完美的精度和对训练数据的完美回忆,因为它已经学会了记住数据的模式。为了“在野外”发布,模型应该在从未见过的数据上表现良好,因为它的性能表明了在现实世界中应用时会发生什么。

在这里插入图片描述

使用 Encord Active 平衡数据集

Encord Active 是一个开源主动学习工具包,可以帮助您实现平衡的数据集。通过使用其数据质量指标,您可以评估图像或单个视频帧的分布,而无需考虑标签。这些指标显示数据集中的任何类别不平衡,突出显示潜在的偏见或代表性不足的类别。

在这里插入图片描述

该工具包的标签质量指标侧重于对象的几何形状,例如边界框、多边形和折线。这使您可以发现注释数据中的标签错误或不准确之处。

使用 Encord Active 的工具可视化标记数据的分布可以帮助您识别数据集中的类别不平衡或差距。获得此信息后,您可以优先考虑高价值数据以进行重新标记,重点关注代表性有限或潜在模型故障模式的区域。

无论您是开始收集数据、标记样本还是生产模型,Encord Active 都会在您的计算机视觉之旅的各个阶段提供宝贵的支持。使用此工具包平衡数据集可以提高数据质量、解决类不平衡问题并提高模型的性能和准确性。

  • 28
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jcfszxc

赏我点铜板买喵粮吃吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值