龙空技术网

如何解决文本分类中的数据倾斜?

编程学研 26

前言:

此时同学们对“文本倾斜校正”大概比较注意,姐妹们都需要分析一些“文本倾斜校正”的相关内容。那么小编同时在网上收集了一些关于“文本倾斜校正””的相关资讯,希望你们能喜欢,兄弟们快快来了解一下吧!

本视频将介绍如何解决文本分类中的数据倾斜问题,助您提高自然语言处理架构的性能评估。

处理文本分类任务时,评估流行的自然语言处理架构在可选项中的性能是理解可用选项的重要一步。本视频将深入探讨与分类相关的最常见挑战之一:数据倾斜。

如果您曾经在真实世界的分类数据集上应用机器学习,那么您可能已经遇到过数据不平衡的问题,了解分类中的不平衡问题。

在数据分类中,我们通常关注不同类别的数据点分布情况。平衡的数据集在所有类别中的数据点数大致相同,因此更易处理。然而,现实世界的数据集往往是不平衡的。不平衡的数据可能导致问题,因为模型可能会学习用最常见的类别标记所有内容而忽略实际输入。如果主要类别非常普遍,以至于模型不会因将少数类别错误分类而受到太多惩罚,这种情况可能出现。

此外,代表性不足的类别可能没有足够的数据供模型学习有意义的模式。不平衡是否需要纠正?不平衡是数据的一个特征。一个很好的问题是我们是否需要对其采取任何措施?有一些技巧可以使模型的训练过程更容易。我们可以选择对训练过程或数据本身进行操作,让模型知道哪些类别对我们来说特别重要,但这应该基于业务需求或领域知识。

接下来,我们将详细讨论这些技巧和操作。为了说明不同技术解决数据不平衡的效果,我们将使用包含747条垃圾短信和4827条正常短信的短信垃圾数据集。虽然只有两个类别,但为了更好地泛化,我们将将此任务视为多类分类问题。

我们将使用robert base模型。请记住,这些技术在其他数据集上可能会产生不同的结果,在特定数据集上进行测试非常重要。在未进行任何调整的情况下训练分类模型,我们将得到以下分类报告:"Safe"技巧,偏置初始化。本视频中的第一个技巧是让模型从一开始就了解数据分布。我们可以通过适当初始化最终分类层的偏置来传达这个知识。

《训练神经网络的秘诀》一文中分享了这个技巧,它有助于模型从知情的角度出发。

在多类别案例中使用softmax作为最终激活函数,希望模型在初始化时的输出能够反映数据分布。为了实现这个目标,我们需要解决以下问题:作为提醒,其中b0和b1分别是负类和正类的偏移,neg和pos分别是负类和正类的元素数量。通过这种初始化所有指标都得到了简单的改善!

在贝叶斯术语中,这意味着手动设置先验,并允许模型在训练过程中学习调整它们。下采样、上加权/上采样和下加权等技术也能有效解决类不平衡问题。下采样和上加权的概念相似,但实现方式不同。下采样和上加权都会减少主要类别样本的数量,以达到分布平衡,同时在训练过程中为该类样本分配更大的权重。

上加权可以确保输出概率仍然代表观察到的数据分布,而上采样和下加权则需要增加代表性不足的类别的数量,并按比例降低其权重。上采样和下加权的结果都是"垃圾邮件"的召回率有所下降,这可能是因为"正常邮件"的权重是"垃圾邮件"的两倍。

Focal loss是一种"动态缩放交叉熵损失",是为了解决不平衡数据的训练问题而引入的,它只适用于二元情况。幸运的是,我们的问题只涉及两个类别。请看下面的公式:在该公式中,p是真实类别的概率,a是加权系数,控制着根据置信度(概率)对损失的惩罚程度。这种设计可以确保概率较低的示例获得指数级更大的权重,从而推动模型学习更具挑战性的示例。

a参数允许不同类别的示例获得不同的权重。通过调整l法盒的组合可以找到最佳配置,要消除明确的类别偏好可将a设为0.5,但是使用这一平衡因子会有微小的改进。

以下是使用Focalloss方法获得的最佳结果:所有指标都优于基线,但需要调整一些参数,请记住,不一定总是这么顺利!"Not-s0-safe"的技巧。众所周知,存在一些方法可以故意改变输出概率分布,从而给代表性不足的类别带来优势。

通过使用这些技术,我们明确地向模型发出信号,表明某些类别至关重要不应被忽视。这通常是由业务需求驱动的,比如检测金融欺诈或攻击性评论,这比意外地错误标记好的示例更重要。当目标是提高特定类别的召回率时,即使牺牲其他指标也要应用这些技术加权。

加权法是为不同类别的样本损失值分配不同的权重,这是一种有效且适应性强的方法,因为它可以让你指出每个类别对模型的重要性。

以下是单个训练样本的多类别加权交叉熵损失公式:其中pytrue表示真实类别的概率,wytrue是该类别的权重。确定权重的一个很好的默认方法是使用类别频率排列。其中N是数据集的总条目数,c是类别计数,ni是第1个类别的元素计数。权重计算如下:{ham':0:576'spam':3.784}。

以下是使用这些权重得出的指标:指标超过基线方案,虽然这种情况可能会发生但并非总是如此。不过,如果避免特定类的漏检至关重要,可以考虑增加类别的权重,这样可能会提高类别的召回率。让我们尝试使用权重"ham"0.576"spam":10.0来查看结果。实验结果如下:正如预期的那样,使用基本损失加权的召回率提高了,但精确度却下降了,与使用类别频率倒数权重相比,F1分数有所下降,这表明了基本损失加权的潜力。即使对于平衡数据,加权也可能有助于提高关键类别上采样和下采样的准确性。

虽然这些方法与之前的讨论类似,但它们不包括加权步骤,因此下采样可能会导致数据丢失,而上采样可能会导致过度拟合。尽管这两种方法都有帮助,但加权通常是更有效、更透明的选择。本视频将使用一个很明显的垃圾邮件示例来评估各种模型版本的可信度。

实验结果如下,与基线相比,加权模型显示出过度自信。使用“下采样+上加权”模型则表现出信心不足。(值得注意的是,上加权的“正常邮件”类值得注意。)由于偏置初始化会增加模型对“垃圾邮件”类别的可信度,而焦点丢失会降低模型对“垃圾邮件”类别的可信度,因此需要注意。综上所述,解决数据不平衡问题是必要的。请记住,有些技术可能会有意改变数据分布,只有在必要时才可使用。不平衡是一种特征,而不是错误。

虽然本视频讨论了概率问题,但最终的性能指标才是对业务最重要的指标。如果离线测试表明某个模型能增加价值,那么就在生产中进行测试。

在实验中,本视频使用了TolokaML平台,它提供了一系列随时可用的模型,可以为ML项目提供一个良好的开端。总的来说,考虑到训练ML模型的数据分布至关重要。训练数据必须代表真实世界的分布,模型才能有效工作。如果数据本身不平衡,模型应考虑到这一点,以便在实际场景中表现良好。

推荐书单《Pandas1.x实例精解》,该书详细阐述了与Pandas相关的基本解决方案,主要包括Pandas基础DataFrame基本操作、创建和保留DataFrame、科技风年终数据看板等。

开始数据分析时,可以选择数据子集、过滤、对齐索引、分组以进行聚合、过滤和转换。将数据重组为规整形式、使用Matplotlib、Pandas和Seaborn进行可视化调试和测试等内容。

此外,该书还提供了相应的示例代码,以帮助读者进一步理解相关方案的实现过程。《Pandas1.x实例精解》适合作为高等院校、计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。

标签: #文本倾斜校正 #文本倾斜校正方法