移动学习网 导航

解决正负样本数据不平衡

2024-05-10m.verywind.com
~ 解决这一问题的基本思路是让正负样本在训练过程中拥有相同的话语权,比如利用采样与加权等方法。为了方便起见,我们把数据集中样本较多的那一类称为“大众类”,样本较少的那一类称为“小众类”。

采样方法是通过对训练集进行处理使其从不平衡的数据集变成平衡的数据集,在大部分情况下会对最终的结果带来提升。

采样分为 上(过)采样(Oversampling) 和 下(欠)采样(Undersampling) ,上采样是把小众类复制多份,下采样是从大众类中剔除一些样本,或者说只从大众类中选取部分样本。

随机采样最大的优点是简单,但缺点也很明显。上采样后的数据集中会反复出现一些样本,训练出来的模型会有一定的过拟合;而下采样的缺点显而易见,那就是最终的训练集丢失了数据,模型只学到了总体模式的一部分。

上采样 会把小众样本复制多份,一个点会在高维空间中反复出现,这会导致一个问题,那就是运气好就能分对很多点,否则分错很多点。为了解决这一问题,可以在每次生成新数据点时加入轻微的随机扰动,经验表明这种做法非常有效。

因为 下采样 会丢失信息,如何减少信息的损失呢? 第一种方法叫做EasyEnsemble,利用模型融合的方法(Ensemble) :多次下采样(放回采样,这样产生的训练集才相互独立)产生多个不同的训练集,进而训练多个不同的分类器,通过组合多个分类器的结果得到最终的结果。 第二种方法叫做BalanceCascade ,利用增量训练的思想(Boosting):先通过一次下采样产生训练集,训练一个分类器,对于那些分类正确的大众样本不放回,然后对这个更小的大众样本下采样产生训练集,训练第二个分类器,以此类推,最终组合所有分类器的结果得到最终结果。 第三种方法是利用KNN试图挑选那些最具代表性的大众样本 ,叫做NearMiss,这类方法计算量很大。

数据合成方法是利用已有样本生成更多样本,这类方法在小数据场景下有很多成功案例,比如医学图像分析等。

SMOTE 为每个小众样本合成相同数量的新样本,这带来一些潜在的问题:一方面是增加了类之间重叠的可能性,另一方面是生成一些没有提供有益信息的样本。为了解决这个问题, 出现两种方法:Borderline-SMOTE与ADASYN 。

Borderline-SMOTE 的解决思路是寻找那些应该为之合成新样本的小众样本。即为每个小众样本计算K近邻,只为那些K近邻中有一半以上大众样本的小众样本生成新样本。直观地讲,只为那些周围大部分是大众样本的小众样本生成新样本,因为这些样本往往是边界样本。确定了为哪些小众样本生成新样本后再利用SMOTE生成新样本。

对不同类别分错的代价不同。如下图

横向是真实分类情况,纵向是预测分类情况,C(i,j)是把真实类别为j的样本预测为i时的损失,我们需要根据实际情况来设定它的值。

这种方法的难点在于设置合理的权重,实际应用中一般让各个分类间的加权损失值近似相等。当然这并不是通用法则,还是需要具体问题具体分析。

对于正负样本极不平衡的场景,我们可以换一个完全不同的角度来看待问题:把它看做一分类(One Class Learning)或异常检测(Novelty Detection)问题。这类方法的重点不在于捕捉类间的差别,而是为其中一类进行建模,经典的工作包括One-class SVM等。

说明:对于正负样本极不均匀的问题,使用异常检测,或者一分类问题,也是一个思路。

1、在正负样本都非常之少的情况下,应该采用数据合成的方式;

2、在负样本足够多,正样本非常之少且比例及其悬殊的情况下,应该考虑一分类方法;

3、在正负样本都足够多且比例不是特别悬殊的情况下,应该考虑采样或者加权的方法。

4、采样和加权在数学上是等价的,但实际应用中效果却有差别。尤其是采样了诸如Random Forest等分类方法,训练过程会对训练集进行随机采样。在这种情况下,如果计算资源允许上采样往往要比加权好一些。

5、另外,虽然上采样和下采样都可以使数据集变得平衡,并且在数据足够多的情况下等价,但两者也是有区别的。实际应用中,我的经验是如果计算资源足够且小众类样本足够多的情况下使用上采样,否则使用下采样,因为上采样会增加训练集的大小进而增加训练时间,同时小的训练集非常容易产生过拟合。

6、对于下采样,如果计算资源相对较多且有良好的并行环境,应该选择Ensemble方法。

参考https://blog.csdn.net/lujiandong1/article/details/52658675?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=1328641.21496.16155984958537047&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

  • spss处理正负样本不平衡问题
  • 答:1、上采样:增加样本数较少的样本,其方式是直接复制原来的样本。样本较少时采用。2、下采样:减少样本数较多的样本,其方式是丢弃这些多余的样本。样本较多时采用。3、合成样本:增加样本数目较少的那一类的样本,合成指的...

  • 如何应对样本不均衡问题
  • 答:(1)欠采样:在少量样本数量不影响模型训练的情况下,可以通过对多数样本欠采样,实现少数样本和多数样本的均衡。 (2)过采样:在少量样本数量不支撑模型训练的情况下,可以通过对少量样本过采样,实现少数样本和多数样本的均衡。 (3)模型算法:...

  • 一文解决样本不均衡(全)
  • 答:· 判断是否出现某一类别样本数目非常稀少的情况,这时模型很有可能学习不好,类别不均衡是需要解决的,如选择一些数据增强的方法,或者尝试如异常检测的单分类模型。 二、样本不均衡解决方法 基本上,在学习任务有些难度的前提下,不均衡解决...

  • 解决正负样本数据不平衡
  • 答:1、在正负样本都非常之少的情况下,应该采用数据合成的方式;2、在负样本足够多,正样本非常之少且比例及其悬殊的情况下,应该考虑一分类方法;3、在正负样本都足够多且比例不是特别悬殊的情况下,应该考虑采样或者加权的方法...

  • 样本不均衡-Focal loss,GHM
  • 答:为了解决正负样本不均衡,乘以权重 :一般根据各类别数据占比,对 进行取值 ,即当class_1占比为30%时, 。我们希望模型能更关注容易错分的数据,反向思考,就是让 模型别那么关注容易分类的样本 。因此,Focal Loss的...

  • R语言--不均衡问题处理
  • 答:加载示范数据,查看列联表。可以看到训练数据 hacide.train 出现了样本不均衡,正样本1只有20个,负样本0有980个。欠采样会缩小训练数据。训练数据虽然正负样本均衡了,但由于原始的正样本很少,导致处理后总样本数减少很多。

  • 非平衡数据集的机器学习常用处理方法
  • 答:影响:不平衡的数据集上做训练和测试,其得到的准确率是虚高的,比如在不平衡数据中,正负样本的比例为9:1时,当它的精度为90%时,我们很有理由怀疑它将所有的类别都判断为数据多的那一类。解决方法:8种 1.收集更多...

  • 机器学习中的数据不平衡解决方案大全
  • 答:经过上述步骤的聚类操作,我们对富类训练样本进行了筛选,接下来我们就可以将相等样本数的K个正负样本进行有监督训练。如下图所示:8、设计适用于不平衡数据集的模型 所有之前的方法都集中在数据上,并将模型保持为固定的组件...

  • 分层抽样
  • 答:通过这些精妙的步骤,分层抽样不仅帮助我们解决样本不平衡问题,还为模型的训练和评估提供了高质量的数据基础。深入理解并掌握这一技术,无疑将为你的数据分析和建模项目增添一抹亮色。

  • DRB不平衡是什么意思
  • 答:因此,DRB不平衡会对模型的性能和结果产生影响,需要对数据进行处理来保证正负样本平衡。DRB不平衡会对模型的训练和预测产生负面影响。在训练过程中,当负样本过多时,模型可能会过度侧重于训练正样本,无法很好地学习负样本的...

    户户网菜鸟学习
    联系邮箱
    返回顶部
    移动学习网