精华内容
下载资源
问答
  • 样本不均衡
    2020-10-18 22:41:21

    这里主要介绍CV中的样本不均衡问题(部分方法也适用于ML中)。当前主流的物体检测算法,如Faster RCNN和SSD等,都是将物体检测当做分类问题来考虑,即先使用先验框或者RPN等生成感兴趣的区域,再对该区域进行分类与回归位置。这种基于分类思想的物体检测算法存在样本不均衡的问题,因而会降低模型的训练效率与检测精度。
    下面首先分析样本不均衡带来的问题,随后会讲解两种经典的缓解不均衡问题的方法。

    1、不均衡问题分析

    在当前的物体检测算法中,由于检测算法各不相同,以及数据集之间的差异,可能会存在正负样本、难易样本、类别间样本这3种不均衡问题,如图所示。下面将详细分析这3种不均衡问题的来源,以及常
    用的解决方法。
    在这里插入图片描述

    1.1 正负样本不均衡

    以Faster RCNN为例,在RPN部分会生成20000个左右的Anchor,由于一张图中通常有10个左右的物体,导致可能只有100个左右的Anchor会是正样本,正负样本比例约为1∶200,存在严重的不均衡。
    对于物体检测算法,有核心价值的是对应着真实物体的正样本,在训练时会根据其loss来调整网络参数。相比之下,负样本对应着图像的背景,如果有大量的负样本参与训练,则会淹没正样本的损失,从而降低网络收敛的效率与检测精度。

    1.2 难易样本不均衡

    除了正负样本,在物体检测中还存在着难易样本的不均衡问题。根据是否容易学习及与标签的重叠程度,可以将所有样本分为4类:简单正样本(Easy Positive)、难正样本(Hard Positive)、简单负样本(Easy Negative)及难负样本(Hard Negative),如图所示。
    在这里插入图片描述
    难样本指的是分类不太明确的边框,处在前景与背景的过渡区域上,在网络训练中难样本损失会较大,也是我们希望模型去学习优化的样本,利用这部分训练可以提升检测的准确率。
    然而,大量的样本并非处在前景与背景的过渡区,而是与真实物体没有重叠区域的负样本,或者与真实物体重叠程度很高的正样本,这部分被称为简单样本,单个损失会较小,对参数收敛的作用有限。虽然简单样本单个损失小,但由于数量众多,因此如果全都计算损失的话,其损失也会比难样本大很多,这种难易样本的不均衡也会影响模型的收敛与精度。

    值得注意的是,由于负样本中大量的是简单样本,导致难易样本与正负样本这两个不均衡问题有一定的重叠,解决方法往往能同时对这两个问题起作用。

    1.3 类别间样本不均衡

    在有些物体检测的数据集中,还会存在类别间的不均衡问题。举个例子,数据集中有100万个车辆、1000个行人的实例标签,样本比例为1000∶1,属于典型的类别不均衡。

    这种情况下,如果不做任何处理,使用该数据集进行训练,由于行人这一类别可参考标签太少,会使得模型主要关注车这一类别的检测,网络中的参数主要根据车辆的损失进行优化,导致行人的检测精度大大下降。

    针对以上3种不均衡问题,经典的物体检测算法在处理样本时,总体上有如下4种缓解办法:

    • Faster RCNN、SSD等算法在正负样本的筛选时,根据样本与真实物体的IoU大小,设置了3∶1的正负样本比例,这一点缓解了正负样本的不均衡,同时也对难易样本不均衡起到了作用。
    • Faster RCNN在RPN模块中,通过前景得分排序筛选出了2000个左右的候选框,这也会将大量的负样本与简单样本过滤掉,缓解了前两个不均衡问题。
    • 权重惩罚:对于难易样本与类别间的不均衡,可以增大难样本与少类别的损失权重,从而增大模型对这些样本的惩罚,缓解不均衡问题。
    • 数据增强:从数据侧入手,可以在当前数据集上使用随机生成和添加扰动的方法,也可以利用网络爬虫数据等增加数据集的丰富性,从而缓解难易样本和类别间样本等不均衡问题,可以参考SSD的数据增强方法。

    2、在线难样本挖掘:OHEM

    针对难易样本不均衡的问题,2016年CVPR会议上的OHEM(Online Hard Example Mining)方法高效率地实现了在线难样本的挖掘,在多个数据集上都有着优越的表现,是一个很经典的难样本挖掘方法。

    难样本挖掘的思想最初在机器学习中被广泛使用,一般被称为难负样本挖掘(Hard Negative Mining,HNM),用于解决类别的不均衡问题。以SVMs(Support Vector Machines,支持向量机)为例,HNM方法先让模型收敛于当前的工作数据集,然后固定该模型,在数据集中去除简单的样本,添加一些当前无法判断的样本,进行新的训练。这样的交替训练可以使得模型性能达到最优

    物体检测方法很难直接使用HNM算法进行挖掘。原因在于物体检测算法通常采用随机梯度下降(Stochastic Gradient Descent,SGD)等优化方法来进行优化,往往需要上万次的参数更新;而如果采用HNM交替训练的方法,每迭代几次就固定模型,训练的速度会大大下降。

    OHEM可以看做是HNM在物体检测算法上的应用,在实现时选择了Fast RCNN作为基础检测算法。Fast RCNN与Faster RCNN类似,采用了两阶结构,在第二个阶段通过RCNN网络得到了边框的预测值,接下来使用了如下3点标准来确定正、负样本。

    • 当前RoI与真实物体的IoU大于0.5时,判定为正样本。
    • 当前RoI与真实物体的IoU大于0且小于0.5时,判定为负样本。
    • 为了均衡正、负样本的数量,控制正、负样本的比例为1∶3,总数量不超过256。通过这种方式有效缓解了正、负样本的不均衡。

    上述方法虽然简单有效,但是容易忽略一些较为重要的难负样本,并且固定了正、负样本的比例与最大数量,显然不是最优的选择。以此为出发点,OHEM将交替训练与SGD优化方法进行了结合,在每张图片的RoI中选择了较难的样本,实现了在线的难样本挖掘。

    OHEM实现在线难样本挖掘的网络如图8.9所示。图中包含了两个相同的RCNN网络,上半部的a部分是只可读的网络,只进行前向运算;下半部的b网络即可读也可写,需要完成前向计算与反向传播。
    在这里插入图片描述
    OHEM方法示意图
    在一个batch的训练中,基于Fast RCNN的OHEM算法可以分为以下5步:
    (1)按照原始Fast RCNN算法,经过卷积提取网络与RoI Pooling得到了每一张图像的RoI。
    (2)上半部的a网络对所有的RoI进行前向计算,得到每一个RoI的损失。
    (3)对RoI的损失进行排序,进行一步NMS操作,以去除掉重叠严重的RoI,并在筛选后的RoI中选择出固定数量损失较大的部分,作为难样本。
    (4)将筛选出的难样本输入到可读写的b网络中,进行前向计算,得到损失。
    (5)利用b网络得到的反向传播更新网络,并将更新后的参数与上半部的a网络同步,完成一次迭代。

    当然,为了实现方便,OHEM也可以仅采用一个RCNN网络,在选择完难样本后将剩下的简单样本的损失置0,可以起到相同的作用。但是,由于其特殊的损失计算方式,把简单的样本都舍弃了,导致模型无法提升对于简单样本的检测精度,这也是OHEM方法的一个弊端。

    总体上,OHEM是一个很经典的难样本挖掘Trick,实现方式简单,可以显著提升网络训练的效率和检测性能,被广泛地应用于难样本的挖掘场景中,并且数据集越大、难度越高,OHEM对于检测的提升越明显。

    3、专注难样本:Focal Loss

    当前一阶的物体检测算法,如SSD和YOLO等虽然实现了实时的速度,但精度始终无法与两阶的Faster RCNN相比。是什么阻碍了一阶算法的高精度呢?何凯明等人将其归咎于正、负样本的不均衡,并基于此提出了新的损失函数Focal Loss及网络结构RetinaNet,在与同期一阶网络速度相同的前提下,其检测精度比同期最优的二阶网络还要高。

    从前面的叙述中可以得知,Faster RCNN在第一个阶段利用得分筛选出了2000个左右的RoI,可以过滤掉大部分的负样本,在第二个阶段通过固定正、负样本比例或者OHEM等方法,可以有效解决正、负样本的不均衡问题。

    而对于SSD等一阶网络,由于其需要直接从所有的预选框中进行筛选,即使使用了固定正、负样本比例的方法,仍然效率低下,简单的负样本仍然占据主要地位,导致其精度不如两阶网络。

    为了解决一阶网络中样本的不均衡问题,何凯明等人首先改善了分类过程中的交叉熵函数,提出了可以动态调整权重的Focal Loss。为了形成对比,接下来分别介绍标准交叉熵、平衡交叉熵及Focal Loss。

    3.1 标准交叉熵损失

    首先回顾一下标准的交叉熵(Cross Entropy,CE)函数,其形式如式所示。
    在这里插入图片描述
    公式中,p代表样本在该类别的预测概率,y代表样本标签。可以看出,当标签为1时,p越接近1,则损失越小;标签为0时p越接近0,则损失越小,符合优化的方向。
    为了方便表示,按照式(8-8)将p标记为pt:
    在这里插入图片描述
    则交叉熵可以表示为式(8-9)的形式:
    C E ( p , y ) = C E ( p t ) = − l o g ( p t ) CE(p,y)=CE(p_t)=-log(pt) CE(p,y)=CE(pt)=log(pt) (8-9)
    标准的交叉熵中所有样本的权重都是相同的,因此如果正、负样本不均衡,大量简单的负样本会占据主导地位,少量的难样本与正样本会起不到作用,导致精度变差。

    3.2 平衡交叉熵损失

    为了改善样本的不平衡问题,平衡交叉熵在标准的基础上增加了一个系数 α t α_t αt来平衡正、负样本的权重, α t α_t αt由超参 α α α按照式(8-10)计算得来, α α α取值在[0,1]区间内。
    在这里插入图片描述
    有了 α t α_t αt,平衡交叉熵损失公式如式所示。
    C E ( p t ) = − α t l o g ( p t ) CE(pt)=-α_tlog(p_t) CE(pt)=αtlog(pt)
    尽管平衡交叉熵损失改善了正、负样本间的不平衡,但由于其缺乏对难易样本的区分,因此没有办法控制难易样本之间的不均衡。

    3.3 专注难样本Focal Loss

    Focal Loss为了同时调节正、负样本与难易样本,提出了如式所示的损失函数。

    F L ( p t ) = − α t ( 1 − p t ) γ l o g ( p t ) FL(p_t)=-α_t(1-p_t)^γlog(p_t) FL(pt)=αt(1pt)γlog(pt)

    对于该损失函数,有如下3个属性:

    • 与平衡交叉熵类似,引入了 α t α_t αt权重,为了改善正负样本的不均衡,可以提升一些精度。
    • ( 1 − p t ) γ (1-p_t)^γ (1pt)γ是为了调节难易样本的权重。当一个边框被误分类时, p t p_t pt较小,则 ( 1 − p t ) γ (1-p_t)^γ (1pt)γ接近于1,其损失几乎不受影响;当 p t p_t pt接近于1时,表明其分类预测较好,是简单样本, ( 1 − p t ) γ (1-p_t)^γ (1pt)γ接近于0,因此其损失被调低了。
    • γ γ γ是一个调制因子, γ γ γ越大,简单样本损失的贡献会越低。

    为了验证Focal Loss的效果,何凯明等人还提出了一个一阶物体检测结构RetinaNet,其结构如图所示在这里插入图片描述

    对于RetinaNet的网络结构,有以下5个细节:

    • 在Backbone部分,RetinaNet利用ResNet与FPN构建了一个多尺度特征的特征金字塔。
    • RetinaNet使用了类似于Anchor的预选框,在每一个金字塔层,使用了9个大小不同的预选框。
    • 分类子网络:分类子网络为每一个预选框预测其类别,因此其输出特征大小为KA×W×H,A默认为9,K代表类别数。中间使用全卷积网络与ReLU激活函数,最后利用Sigmoid函数输出预测值。
    • 回归子网络:回归子网络与分类子网络平行,预测每一个预选框的偏移量,最终输出特征大小为4A×W×W。与当前主流工作不同的是,两个子网络没有权重的共享。
    • Focal Loss:与OHEM等方法不同,Focal Loss在训练时作用到所有的预选框上。对于两个超参数,通常来讲,当γ增大时,α应当适当减小。实验中γ取2、α取0.25时效果最好。

    总体上,Focal Loss算法将样本的不均衡视为一阶与两阶网络精度差距的原因,提出了简单高效的Focal Loss,使得模型专注于难样本上,并提出了一阶网络RetinaNet,实现了SOTA的精度。

    更多相关内容
  • 故障数据样本和正常运行数据样本量的不均衡将导致支持向量机在构建故障分类超平面时发生偏移,降低了基于支持向量机的故障诊断的诊断准确率.针对该问题,文中提出一种能够自动调整风险惩罚因子的新型支持向量机.该方法...
  • 样本不均衡论文

    2018-05-05 12:39:29
    1. 平衡数据集分类的Random_SMOTE方法研究_董燕杰 2. 不均衡电信客户数据的分类问题研究_郭娜娜 3. 移动通讯话务量时间序列预测方法研究_雷苗
  • 样本不均衡的问题

    千次阅读 2022-01-26 11:30:36
    一、样本不均衡简介 1.1 样本不均衡现象 样本(类别)样本不平衡(class-imbalance)指的是分类任务中不同类别的训练样例数目差别很大的情况,一般地,样本类别比例(Imbalance Ratio)(多数类vs少数类)明显大于1:...

    一、样本不均衡简介

    1.1 样本不均衡现象

    样本(类别)样本不平衡(class-imbalance)指的是分类任务中不同类别的训练样例数目差别很大的情况,一般地,样本类别比例(Imbalance Ratio)(多数类vs少数类)明显大于1:1(如4:1)就可以归为样本不均衡的问题。现实中,样本不平衡是一种常见的现象,如:金融欺诈交易检测,欺诈交易的订单样本通常是占总交易数量的极少部分,而且对于有些任务而言少数样本更为重要。
    在这里插入图片描述

    1.2 不均衡的根本影响

        很多时候我们遇到样本不均衡问题时,很直接的反应就是去“打破”这种不平衡。但是样本不均衡有什么影响?有必要去解决吗?
      具体举个例子,在一个欺诈识别的案例中,好坏样本的占比是1000:1,而如果我们直接拿这个比例去学习模型的话,因为扔进去模型学习的样本大部分都是好的,就很容易学出一个把所有样本都预测为好的模型,而且这样预测的概率准确率还是非常高的。而模型最终学习的并不是如何分辨好坏,而是学习到了”好 远比 坏的多“这样的先验信息,凭着这个信息把所有样本都判定为“好”就可以了。这样就背离了模型学习去分辨好坏的初衷了。所以,样本不均衡带来的根本影响是:模型会学习到训练集中样本比例的这种先验性信息,以致于实际预测时就会对多数类别有侧重(可能导致多数类精度更好,而少数类比较差)。
    如下图,类别不均衡情况下的分类边界会偏向“侵占”少数类的区域,更重要的一点,这会影响模型学习更本质的特征,影响模型的鲁棒性。
    在这里插入图片描述

    总结一下也就是,我们通过解决样本不均衡,可以减少模型学习样本比例的先验信息,以获得能学习到辨别好坏本质特征的模型。

    1.3 判断解决不均衡是否有必要

    从分类效果出发,通过上面的例子可知,不均衡对于分类结果的影响不一定是不好的,那什么时候需要解决样本不均衡?

    • 判断任务是否复杂:学习任务的复杂度与样本不平衡的敏感度是成正比的(参见《Survey on deep learning with class imbalance》),对于简单线性可分任务,样本是否均衡影响不大。需要注意的是,学习任务的复杂度是相对意义上的,得从特征强弱、数据噪音情况以及模型容量等方面综合评估。(样本越复杂,样本不平衡敏感度越高)
    • 判断训练样本的分布与真实样本分布是否一致且稳定,如果分布是一致的,带着这种正确点的先验对预测结果影响不大。但是,还需要考虑到,如果后面真实样本分布变了,这个样本比例的先验就有副作用了。
    • 判断是否出现某一类别样本数目非常稀少的情况,这时模型很有可能学习不好,类别不均衡是需要解决的,如选择一些数据增强的方法,或者尝试如异常检测的单分类模型。

    二、样本不均衡解决办法

    基本上,在学习任务有些难度的前提下,不均衡解决方法可以归结为:通过某种方法使得不同类别的样本对于模型学习中的Loss(或梯度)贡献是比较均衡的。以消除模型对不同类别的偏向性,学习到更为本质的特征。本文从数据样本、模型算法、目标(损失)函数、评估指标等方面,对个中的解决方法进行探讨。

    2.1 样本层面

    2.1.1 欠采样、过采样

    最直接的处理方式就是样本数量的调整了,常用的可以:

    • 欠采样:减少多数类的数量(如随机欠采样、NearMiss、ENN)。
    • 过采样:尽量多地增加少数类的的样本数量(如随机过采样、以及2.1.2数据增强方法),以达到类别间数目均衡。
    • 还可结合两者做混合采样(如Smote+ENN)
    2.1.2 数据增强

    数据增强(Data Augmentation)是在不实质性的增加数据的情况下,从原始数据加工出更多数据的表示,提高原数据的数量及质量,以接近于更多数据量产生的价值,从而提高模型的学习效果(其实也是过采样的方法的一种。如下列举常用的方法:

    • 基于样本变换的数据增强
        样本变换数据增强即采用预设的数据变换规则进行已有数据的扩增,包含单样本数据增强和多样本数据增强。单样本增强(主要用于图像):主要有几何操作、颜色变换、随机擦除、添加噪声等方法产生新的样本,可参见imgaug开源库。
      在这里插入图片描述
      多样本增强:是通过组合及转换多个样本,主要有Smote类(可见imbalanced-learn.org/stable/references/over_sampling.html)、SamplePairing、Mixup等方法在特征空间内构造已知样本的邻域值样本。
      在这里插入图片描述
    • 基于深度学习的数据增强
      生成模型如变分自编码网络(Variational Auto-Encoding network, VAE)和生成对抗网络(Generative Adversarial Network, GAN),其生成样本的方法也可以用于数据增强。这种基于网络合成的方法相比于传统的数据增强技术虽然过程更加复杂, 但是生成的样本更加多样。在这里插入图片描述
      数据样本层面解决不均衡的方法,需要关注的是:
    • 随机欠采样可能会导致丢弃含有重要信息的样本。在计算性能足够下,可以考虑数据的分布信息(通常是基于距离的邻域关系)的采样方法,如ENN、NearMiss等。
    • 随机过采样或数据增强样本也有可能是强调(或引入)片面噪声,导致过拟合。也可能是引入信息量不大的样本。此时需要考虑的是调整采样方法,或者通过半监督算法(可借鉴Pu-Learning思路)选择增强数据的较优子集,以提高模型的泛化能力。

    2.2 损失函数层面

    损失函数层面主流的方法也就是常用的代价敏感学习(cost-sensitive),为不同的分类错误给予不同惩罚力度(权重),在调节类别平衡的同时,也不会增加计算复杂度。如下常用方法:

    2.2.1 class weight

    这最常用也就是scikit模型的’class weight‘方法,class weight可以为不同类别的样本提供不同的权重(少数类有更高的权重),从而模型可以平衡各类别的学习。如下图通过为少数类做更高的权重,以避免决策偏重多数类的现象(类别权重除了设定为balanced,还可以作为一个超参搜索。示例代码请见(github.com/aialgorithm):
    在这里插入图片描述

    2.2.2 OHEM 和 Focal Loss

    上文的大意是,类别的不平衡可以归结为难易样本的不平衡,而难易样本的不平衡可以归结为梯度的不平衡。按照这个思路,OHEM和Focal loss都做了两件事:难样本挖掘以及类别的平衡。

    • OHEM(Online Hard Example Mining)算法的核心是选择一些hard examples(多样性和高损失的样本)作为训练的样本,针对性地改善模型学习效果。对于数据的类别不平衡问题,OHEM的针对性更强。
    • Focal loss的核心思想是在交叉熵损失函数(CE)的基础上增加了类别的不同权重以及困难(高损失)样本的权重(如下公式),以改善模型学习效果。在这里插入图片描述

    2.3 模型层面

    模型方面主要是选择一些对不均衡比较不敏感的模型,比如,对比逻辑回归模型(lr学习的是全量训练样本的最小损失,自然会比较偏向去减少多数类样本造成的损失),决策树在不平衡数据上面表现相对好一些,树模型是按照增益递归地划分数据(如下图),划分过程考虑的是局部的增益,全局样本是不均衡,局部空间就不一定,所以比较不敏感一些(但还是会有偏向性)。相关实验可见arxiv.org/abs/2104.02240。在这里插入图片描述

    2.3.1 采样+集成学习

    这类方法简单来说,通过重复组合少数类样本与抽样的同样数量的多数类样本,训练若干的分类器进行集成学习。在这里插入图片描述

    展开全文
  • 一、样本不均衡的介绍 1.1 样本不均衡现象样本(类别)样本不平衡(class-imbalance)指的是分类任务中不同类别的训练样例数目差别很大的情况,一般地,样本类别比例(Imbala...

    一、样本不均衡的介绍

    1.1 样本不均衡现象

    样本(类别)样本不平衡(class-imbalance)指的是分类任务中不同类别的训练样例数目差别很大的情况,一般地,样本类别比例(Imbalance Ratio)(多数类vs少数类)明显大于1:1(如4:1)就可以归为样本不均衡的问题。现实中,样本不平衡是一种常见的现象,如:金融欺诈交易检测,欺诈交易的订单样本通常是占总交易数量的极少部分,而且对于有些任务而言少数样本更为重要。0100e2e011a7f0c18bee177e56a83075.png

    注:本文主要探讨分类任务的类别不均衡,回归任务的样本不均衡详见《Delving into Deep Imbalanced Regression

    1.2 不均衡的根本影响

    很多时候我们遇到样本不均衡问题时,很直接的反应就是去“打破”这种不平衡。但是样本不均衡有什么影响?有必要去解决吗?

    具体举个例子,在一个欺诈识别的案例中,好坏样本的占比是1000:1,而如果我们直接拿这个比例去学习模型的话,因为扔进去模型学习的样本大部分都是好的,就很容易学出一个把所有样本都预测为好的模型,而且这样预测的概率准确率还是非常高的。而模型最终学习的并不是如何分辨好坏,而是学习到了”好 远比 坏的多“这样的先验信息,凭着这个信息把所有样本都判定为“好”就可以了。这样就背离了模型学习去分辨好坏的初衷了。

    所以,样本不均衡带来的根本影响是:模型会学习到训练集中样本比例的这种先验性信息,以致于实际预测时就会对多数类别有侧重(可能导致多数类精度更好,而少数类比较差)。如下图(示例代码请见:github.com/aialgorithm),类别不均衡情况下的分类边界会偏向“侵占”少数类的区域。更重要的一点,这会影响模型学习更本质的特征,影响模型的鲁棒性。

    c4d9d2cc48f5bb9e2cee7227923e40b1.png

    总结一下也就是,我们通过解决样本不均衡,可以减少模型学习样本比例的先验信息,以获得能学习到辨别好坏本质特征的模型

    1.3 判断解决不均衡的必要性

    从分类效果出发,通过上面的例子可知,不均衡对于分类结果的影响不一定是不好的,那什么时候需要解决样本不均衡

    • 判断任务是否复杂:复杂度学习任务的复杂度与样本不平衡的敏感度是成正比的(参见《Survey on deep learning with class imbalance》),对于简单线性可分任务,样本是否均衡影响不大。需要注意的是,学习任务的复杂度是相对意义上的,得从特征强弱、数据噪音情况以及模型容量等方面综合评估。

    • 判断训练样本的分布与真实样本分布是否一致且稳定,如果分布是一致的,带着这种正确点的先验对预测结果影响不大。但是,还需要考虑到,如果后面真实样本分布变了,这个样本比例的先验就有副作用了。

    • 判断是否出现某一类别样本数目非常稀少的情况,这时模型很有可能学习不好,类别不均衡是需要解决的,如选择一些数据增强的方法,或者尝试如异常检测的单分类模型。

    二、样本不均衡解决方法

    基本上,在学习任务有些难度的前提下,不均衡解决方法可以归结为:通过某种方法使得不同类别的样本对于模型学习中的Loss(或梯度)贡献是比较均衡的。以消除模型对不同类别的偏向性,学习到更为本质的特征。本文从数据样本、模型算法、目标(损失)函数、评估指标等方面,对个中的解决方法进行探讨。

    2.1 样本层面

    2.1.1欠采样、过采样

    最直接的处理方式就是样本数量的调整了,常用的可以:

    • 欠采样:减少多数类的数量(如随机欠采样、NearMiss、ENN)。

    • 过采样:尽量多地增加少数类的的样本数量(如随机过采样、以及2.1.2数据增强方法),以达到类别间数目均衡。

    • 还可结合两者做混合采样(如Smote+ENN)。

      具体还可以参见【scikit-learn的imbalanced-learn.org/stable/user_guide.html以及github的awesome-imbalanced-learning】

    2.1.2 数据增强

    数据增强(Data Augmentation)是在不实质性的增加数据的情况下,从原始数据加工出更多数据的表示,提高原数据的数量及质量,以接近于更多数据量产生的价值,从而提高模型的学习效果(其实也是过采样的方法的一种。具体介绍及代码可见【数据增强】)。如下列举常用的方法:

    • 基于样本变换的数据增强

    样本变换数据增强即采用预设的数据变换规则进行已有数据的扩增,包含单样本数据增强和多样本数据增强。

    单样本增强(主要用于图像):主要有几何操作、颜色变换、随机擦除、添加噪声等方法产生新的样本,可参见imgaug开源库。e9c7d3417cf39a43c0e169b2c9d72f40.png

    多样本增强:是通过组合及转换多个样本,主要有Smote类(可见imbalanced-learn.org/stable/references/over_sampling.html)、SamplePairing、Mixup等方法在特征空间内构造已知样本的邻域值样本。f84fc03dfb88d2758f979665efb4d586.png

    • 基于深度学习的数据增强

    生成模型如变分自编码网络(Variational Auto-Encoding network, VAE)和生成对抗网络(Generative Adversarial Network, GAN),其生成样本的方法也可以用于数据增强。这种基于网络合成的方法相比于传统的数据增强技术虽然过程更加复杂, 但是生成的样本更加多样。7ac20d2c6691048140b8e5e13bbdb0a7.png

    数据样本层面解决不均衡的方法,需要关注的是:

    • 随机欠采样可能会导致丢弃含有重要信息的样本。在计算性能足够下,可以考虑数据的分布信息(通常是基于距离的邻域关系)的采样方法,如ENN、NearMiss等。

    • 随机过采样或数据增强样本也有可能是强调(或引入)片面噪声,导致过拟合。也可能是引入信息量不大的样本。此时需要考虑的是调整采样方法,或者通过半监督算法(可借鉴Pu-Learning思路)选择增强数据的较优子集,以提高模型的泛化能力。

    2.2 损失函数的层面

    损失函数层面主流的方法也就是常用的代价敏感学习(cost-sensitive),为不同的分类错误给予不同惩罚力度(权重),在调节类别平衡的同时,也不会增加计算复杂度。如下常用方法:

    2.2.1 class weight

    这最常用也就是scikit模型的’class weight‘方法,If ‘balanced’, class weights will be given by n_samples / (n_classes * np.bincount(y)). If a dictionary is given, keys are classes and values are corresponding class weights. If None is given, the class weights will be uniform.,class weight可以为不同类别的样本提供不同的权重(少数类有更高的权重),从而模型可以平衡各类别的学习。如下图通过为少数类做更高的权重,以避免决策偏重多数类的现象(类别权重除了设定为balanced,还可以作为一个超参搜索。示例代码请见github.com/aialgorithm):

    clf2 = LogisticRegression(class_weight={0:1,1:10})  # 代价敏感学习
    b57dec38cc6281ab65f57d3a054d0159.png

    2.2.2 OHEM 和 Focal Loss

    In this work, we first point out that the class imbalance can be summarized to the imbalance in difficulty and the imbalance in difficulty can be summarized to the imbalance in gradient norm distribution. 

    --原文可见《Gradient Harmonized Single-stage Detector》

    上文的大意是,类别的不平衡可以归结为难易样本的不平衡,而难易样本的不平衡可以归结为梯度的不平衡。按照这个思路,OHEM和Focal loss都做了两件事:难样本挖掘以及类别的平衡。(另外的有 GHM、 PISA等方法,可以自行了解)

    • OHEM(Online Hard Example Mining)算法的核心是选择一些hard examples(多样性和高损失的样本)作为训练的样本,针对性地改善模型学习效果。对于数据的类别不平衡问题,OHEM的针对性更强。

    • Focal loss的核心思想是在交叉熵损失函数(CE)的基础上增加了类别的不同权重以及困难(高损失)样本的权重(如下公式),以改善模型学习效果。

    746d17bcd1894067820184f5eb088d04.png

    2.3 模型层面

    模型方面主要是选择一些对不均衡比较不敏感的模型,比如,对比逻辑回归模型(lr学习的是全量训练样本的最小损失,自然会比较偏向去减少多数类样本造成的损失),决策树在不平衡数据上面表现相对好一些,树模型是按照增益递归地划分数据(如下图),划分过程考虑的是局部的增益,全局样本是不均衡,局部空间就不一定,所以比较不敏感一些(但还是会有偏向性)。相关实验可见arxiv.org/abs/2104.02240。

    25135dff5b6616be8f23b9796cb11bc9.png

    解决不均衡问题,更为优秀的是基于采样+集成树模型等方法,可以在类别不均衡数据上表现良好。

    2.3.1采样+集成学习

    这类方法简单来说,通过重复组合少数类样本与抽样的同样数量的多数类样本,训练若干的分类器进行集成学习。f67622b15756f7b51322279c4c6b569e.png

    • BalanceCascade BalanceCascade基于Adaboost作为基分类器,核心思路是在每一轮训练时都使用多数类与少数类数量上相等的训练集,然后使用该分类器对全体多数类进行预测,通过控制分类阈值来控制FP(False Positive)率,将所有判断正确的类删除,然后进入下一轮迭代继续降低多数类数量。

    • EasyEnsemble EasyEnsemble也是基于Adaboost作为基分类器,就是将多数类样本集随机分成 N 个子集,且每一个子集样本与少数类样本相同,然后分别将各个多数类样本子集与少数类样本进行组合,使用AdaBoost基分类模型进行训练,最后bagging集成各基分类器,得到最终模型。示例代码可见:www.kaggle.com/orange90/ensemble-test-credit-score-model-example

    通常,在数据集噪声较小的情况下,可以用BalanceCascade,可以用较少的基分类器数量得到较好的表现(基于串行的集成学习方法,对噪声敏感容易过拟合)。噪声大的情况下,可以用EasyEnsemble,基于串行+并行的集成学习方法,bagging多个Adaboost过程可以抵消一些噪声影响。此外还有RUSB、SmoteBoost、balanced RF等其他集成方法可以自行了解。

    2.3.2 异常检测

    类别不平衡很极端的情况下(比如少数类只有几十个样本),将分类问题考虑成异常检测(anomaly detection)问题可能会更好。

    异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点、异常值检测等等。无监督异常检测按其算法思想大致可分为几类:基于聚类的方法、基于统计的方法、基于深度的方法(孤立森林)、基于分类模型(one-class SVM)以及基于神经网络的方法(自编码器AE)等等。具体方法介绍及代码可见【异常检测方法速览】

    91e99350e9dd4011a1763c04d73efde2.png

    2.4 决策及评估指标

    本节关注的重点是,当我们采用不平衡数据训练模型,如何更好决策以及客观地评估不平衡数据下的模型表现。对于分类常用的precision、recall、F1、混淆矩阵,样本不均衡的不同程度,都会明显改变这些指标的表现。

    对于类别不均衡下模型的预测,我们可以做分类阈值移动,以调整模型对于不同类别偏好的情况(如模型偏好预测负样本,偏向0,对应的我们的分类阈值也往下调整),达到决策时类别平衡的目的。这里,通常可以通过P-R曲线,选择到较优表现的阈值。8d17ae69e70ea4348444eea6fc78571b.png

    对于类别不均衡下的模型评估,可以采用AUC、AUPRC(更优)评估模型表现。AUC的含义是ROC曲线的面积,其数值的物理意义是:随机给定一正一负两个样本,将正样本预测分值大于负样本的概率大小。AUC对样本的正负样本比例情况是不敏感,即使正例与负例的比例发生了很大变化,ROC曲线面积也不会产生大的变化。具体可见 【 评估指标】048243190069c4ecd687a30439bf94d3.png

    小结:
    我们通过解决样本不均衡,可以减少模型学习样本比例的先验信息,以获得能学习到辨别好坏本质特征的模型。
    可以将不均衡解决方法归结为:通过某种方法使得不同类别的样本对于模型学习中的Loss(或梯度)贡献是比较均衡的。具体可以从数据样本、模型算法、目标函数、评估指标等方面进行优化,其中数据增强、代价敏感学习及采样+集成学习是比较常用的,效果也是比较明显的。其实,不均衡问题解决也是结合实际再做方法选择、组合及调整,在验证中调优的过程。
    - END -

    文章首发公众号“算法进阶”,文末阅读原文可访问文章相关代码



    
     
    
     
    
     
    
     
    
     
    往期精彩回顾
    
    
    
    
    适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
    AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件

    本站qq群955171419,加入微信群请扫码:

    b63da17ce49584027727982824f19ddd.png

    展开全文
  • 一、样本不均衡的介绍 1.1 样本不均衡现象 样本(类别)样本不平衡(class-imbalance)指的是分类任务中不同类别的训练样例数目差别很大的情况,一般地,样本类别比例(Imbalance Ratio)(多数类vs少数类)明显大于...

    一、样本不均衡的介绍

    1.1 样本不均衡现象

    样本(类别)样本不平衡(class-imbalance)指的是分类任务中不同类别的训练样例数目差别很大的情况,一般地,样本类别比例(Imbalance Ratio)(多数类vs少数类)明显大于1:1(如4:1)就可以归为样本不均衡的问题。现实中,样本不平衡是一种常见的现象,如:金融欺诈交易检测,欺诈交易的订单样本通常是占总交易数量的极少部分,而且对于有些任务而言少数样本更为重要。图片

    注:本文主要探讨分类任务的类别不均衡,回归任务的样本不均衡详见《Delving into Deep Imbalanced Regression

    1.2 不均衡的根本影响

    很多时候我们遇到样本不均衡问题时,很直接的反应就是去“打破”这种不平衡。但是样本不均衡有什么影响?有必要去解决吗?

    具体举个例子,在一个欺诈识别的案例中,好坏样本的占比是1000:1,而如果我们直接拿这个比例去学习模型的话,因为扔进去模型学习的样本大部分都是好的,就很容易学出一个把所有样本都预测为好的模型,而且这样预测的概率准确率还是非常高的。而模型最终学习的并不是如何分辨好坏,而是学习到了”好 远比 坏的多“这样的先验信息,凭着这个信息把所有样本都判定为“好”就可以了。这样就背离了模型学习去分辨好坏的初衷了。

    所以,样本不均衡带来的根本影响是:模型会学习到训练集中样本比例的这种先验性信息,以致于实际预测时就会对多数类别有侧重(可能导致多数类精度更好,而少数类比较差)。如下图(示例代码请见:github.com/aialgorithm),类别不均衡情况下的分类边界会偏向“侵占”少数类的区域。更重要的一点,这会影响模型学习更本质的特征,影响模型的鲁棒性。

    图片

    总结一下也就是,我们通过解决样本不均衡,可以减少模型学习样本比例的先验信息,以获得能学习到辨别好坏本质特征的模型

    1.3 判断解决不均衡的必要性

    从分类效果出发,通过上面的例子可知,不均衡对于分类结果的影响不一定是不好的,那什么时候需要解决样本不均衡

    • 判断任务是否复杂:****复杂度学习任务的复杂度与样本不平衡的敏感度是成正比的(参见《Survey on deep learning with class imbalance》),对于简单线性可分任务,样本是否均衡影响不大。需要注意的是,学习任务的复杂度是相对意义上的,得从特征强弱、数据噪音情况以及模型容量等方面综合评估。

    • 判断训练样本的分布与真实样本分布是否一致且稳定,如果分布是一致的,带着这种正确点的先验对预测结果影响不大。但是,还需要考虑到,如果后面真实样本分布变了,这个样本比例的先验就有副作用了。

    • 判断是否出现某一类别样本数目非常稀少的情况,这时模型很有可能学习不好,类别不均衡是需要解决的,如选择一些数据增强的方法,或者尝试如异常检测的单分类模型。

    二、样本不均衡解决方法

    基本上,在学习任务有些难度的前提下,不均衡解决方法可以归结为:通过某种方法使得不同类别的样本对于模型学习中的Loss(或梯度)贡献是比较均衡的。以消除模型对不同类别的偏向性,学习到更为本质的特征。本文从数据样本、模型算法、目标(损失)函数、评估指标等方面,对个中的解决方法进行探讨。

    2.1 样本层面

    2.1.1欠采样、过采样

    最直接的处理方式就是样本数量的调整了,常用的可以:

    • 欠采样:减少多数类的数量(如随机欠采样、NearMiss、ENN)。

    • 过采样:尽量多地增加少数类的的样本数量(如随机过采样、以及2.1.2数据增强方法),以达到类别间数目均衡。

    • 还可结合两者做混合采样(如Smote+ENN)。

      具体还可以参见【scikit-learn的imbalanced-learn.org/stable/user_guide.html以及github的awesome-imbalanced-learning】

    2.1.2 数据增强

    数据增强(Data Augmentation)是在不实质性的增加数据的情况下,从原始数据加工出更多数据的表示,提高原数据的数量及质量,以接近于更多数据量产生的价值,从而提高模型的学习效果(其实也是过采样的方法的一种。如下列举常用的方法:

    • 基于样本变换的数据增强

    样本变换数据增强即采用预设的数据变换规则进行已有数据的扩增,包含单样本数据增强和多样本数据增强。

    单样本增强(主要用于图像):主要有几何操作、颜色变换、随机擦除、添加噪声等方法产生新的样本,可参见imgaug开源库。图片

    多样本增强:是通过组合及转换多个样本,主要有Smote类(可见imbalanced-learn.org/stable/references/over_sampling.html)、SamplePairing、Mixup等方法在特征空间内构造已知样本的邻域值样本。图片

    • 基于深度学习的数据增强

    生成模型如变分自编码网络(Variational Auto-Encoding network, VAE)和生成对抗网络(Generative Adversarial Network, GAN),其生成样本的方法也可以用于数据增强。这种基于网络合成的方法相比于传统的数据增强技术虽然过程更加复杂, 但是生成的样本更加多样。图片

    数据样本层面解决不均衡的方法,需要关注的是:

    • 随机欠采样可能会导致丢弃含有重要信息的样本。在计算性能足够下,可以考虑数据的分布信息(通常是基于距离的邻域关系)的采样方法,如ENN、NearMiss等。

    • 随机过采样或数据增强样本也有可能是强调(或引入)片面噪声,导致过拟合。也可能是引入信息量不大的样本。此时需要考虑的是调整采样方法,或者通过半监督算法(可借鉴Pu-Learning思路)选择增强数据的较优子集,以提高模型的泛化能力。

    2.2 损失函数的层面

    损失函数层面主流的方法也就是常用的代价敏感学习(cost-sensitive),为不同的分类错误给予不同惩罚力度(权重),在调节类别平衡的同时,也不会增加计算复杂度。如下常用方法:

    2.2.1 class weight

    这最常用也就是scikit模型的’class weight‘方法,If ‘balanced’, class weights will be given by n_samples / (n_classes * np.bincount(y)). If a dictionary is given, keys are classes and values are corresponding class weights. If None is given, the class weights will be uniform.,class weight可以为不同类别的样本提供不同的权重(少数类有更高的权重),从而模型可以平衡各类别的学习。如下图通过为少数类做更高的权重,以避免决策偏重多数类的现象(类别权重除了设定为balanced,还可以作为一个超参搜索。示例代码请见github.com/aialgorithm):

    clf2 = LogisticRegression(class_weight={0:1,1:10})  # 代价敏感学习
    

    图片

    2.2.2 OHEM 和 Focal Loss

    In this work, we first point out that the class imbalance can be summarized to the imbalance in difficulty and the imbalance in difficulty can be summarized to the imbalance in gradient norm distribution.

    –原文可见《Gradient Harmonized Single-stage Detector》

    上文的大意是,类别的不平衡可以归结为难易样本的不平衡,而难易样本的不平衡可以归结为梯度的不平衡。按照这个思路,OHEM和Focal loss都做了两件事:难样本挖掘以及类别的平衡。(另外的有 GHM、 PISA等方法,可以自行了解)

    • OHEM(Online Hard Example Mining)算法的核心是选择一些hard examples(多样性和高损失的样本)作为训练的样本,针对性地改善模型学习效果。对于数据的类别不平衡问题,OHEM的针对性更强。

    • Focal loss的核心思想是在交叉熵损失函数(CE)的基础上增加了类别的不同权重以及困难(高损失)样本的权重(如下公式),以改善模型学习效果。

    图片

    2.3 模型层面

    模型方面主要是选择一些对不均衡比较不敏感的模型,比如,对比逻辑回归模型(lr学习的是全量训练样本的最小损失,自然会比较偏向去减少多数类样本造成的损失),决策树在不平衡数据上面表现相对好一些,树模型是按照增益递归地划分数据(如下图),划分过程考虑的是局部的增益,全局样本是不均衡,局部空间就不一定,所以比较不敏感一些(但还是会有偏向性)。相关实验可见arxiv.org/abs/2104.02240。

    图片

    解决不均衡问题,更为优秀的是基于采样+集成树模型等方法,可以在类别不均衡数据上表现良好。

    2.3.1采样+集成学习

    这类方法简单来说,通过重复组合少数类样本与抽样的同样数量的多数类样本,训练若干的分类器进行集成学习。图片

    • BalanceCascade BalanceCascade基于Adaboost作为基分类器,核心思路是在每一轮训练时都使用多数类与少数类数量上相等的训练集,然后使用该分类器对全体多数类进行预测,通过控制分类阈值来控制FP(False Positive)率,将所有判断正确的类删除,然后进入下一轮迭代继续降低多数类数量。

    • EasyEnsemble EasyEnsemble也是基于Adaboost作为基分类器,就是将多数类样本集随机分成 N 个子集,且每一个子集样本与少数类样本相同,然后分别将各个多数类样本子集与少数类样本进行组合,使用AdaBoost基分类模型进行训练,最后bagging集成各基分类器,得到最终模型。示例代码可见:www.kaggle.com/orange90/ensemble-test-credit-score-model-example

    通常,在数据集噪声较小的情况下,可以用BalanceCascade,可以用较少的基分类器数量得到较好的表现(基于串行的集成学习方法,对噪声敏感容易过拟合)。噪声大的情况下,可以用EasyEnsemble,基于串行+并行的集成学习方法,bagging多个Adaboost过程可以抵消一些噪声影响。此外还有RUSB、SmoteBoost、balanced RF等其他集成方法可以自行了解。

    2.3.2 异常检测

    类别不平衡很极端的情况下(比如少数类只有几十个样本),将分类问题考虑成异常检测(anomaly detection)问题可能会更好。

    异常检测是通过数据挖掘方法发现与数据集分布不一致的异常数据,也被称为离群点、异常值检测等等。无监督异常检测按其算法思想大致可分为几类:基于聚类的方法、基于统计的方法、基于深度的方法(孤立森林)、基于分类模型(one-class SVM)以及基于神经网络的方法(自编码器AE)等等。

    图片

    2.4 决策及评估指标

    本节关注的重点是,当我们采用不平衡数据训练模型,如何更好决策以及客观地评估不平衡数据下的模型表现。对于分类常用的precision、recall、F1、混淆矩阵,样本不均衡的不同程度,都会明显改变这些指标的表现。

    对于类别不均衡下模型的预测,我们可以做分类阈值移动,以调整模型对于不同类别偏好的情况(如模型偏好预测负样本,偏向0,对应的我们的分类阈值也往下调整),达到决策时类别平衡的目的。这里,通常可以通过P-R曲线,选择到较优表现的阈值。图片

    对于类别不均衡下的模型评估,可以采用AUC、AUPRC(更优)评估模型表现。AUC的含义是ROC曲线的面积,其数值的物理意义是:随机给定一正一负两个样本,将正样本预测分值大于负样本的概率大小。AUC对样本的正负样本比例情况是不敏感,即使正例与负例的比例发生了很大变化,ROC曲线面积也不会产生大的变化。图片

    小结:

    我们通过解决样本不均衡,可以减少模型学习样本比例的先验信息,以获得能学习到辨别好坏本质特征的模型。

    可以将不均衡解决方法归结为:通过某种方法使得不同类别的样本对于模型学习中的Loss(或梯度)贡献是比较均衡的。具体可以从数据样本、模型算法、目标函数、评估指标等方面进行优化,其中数据增强、代价敏感学习及采样+集成学习是比较常用的,效果也是比较明显的。其实,不均衡问题解决也是结合实际再做方法选择、组合及调整,在验证中调优的过程。

    推荐文章

    技术交流

    目前已开通了技术交流群,群友已超过1000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

    • 方式①、发送如下图片至微信,长按识别,后台回复:加群
    • 方式②、微信搜索公众号:机器学习社区,后台回复:加群
    • 方式③、可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。
      在这里插入图片描述
    展开全文
  • 1 什么是类别不均衡 类别平衡(class-imbalance),也叫数据倾斜,数据平衡,是指分类任务中不同类别的训练样例数目差别很大的情况。 在现实的分类学习任务中,我们经常会遇到类别平衡,例如广告点击率预测、...
  • 但是我们的模型默认时样本均衡的,这样就会带来一些问题 首先,模型分类时会更加的倾向于多数类,让多数类更加容易被判对,会牺牲掉少数类来保证多数类的判别效果。 但是这样的模型显然不是我们需要的 其次,模型的...
  • 文章目录一瞥 什么是样本类别分布均衡? 样本类别分布均衡导致的危害? 解决方法: 1.... (1)过抽样(over-sampling):通过增加分类中少数类样本的数量来实现样本均衡,比较...
  • 样本不均衡问题

    2020-03-05 16:38:01
    通过过抽样和欠抽样解决样本均衡 (1)过抽样(over-sampling):通过增加分类中少数类样本的数量来实现样本均衡,比较好的方法有SMOTE算法。 (2)欠抽样(under-sampling):通过减少分类中多数类样本的数量来...
  • 分类案例:XGB中的样本不均衡问题

    千次阅读 2022-02-03 15:39:40
    参数scale_pos_weight减轻分类样本不平衡问题的影响
  • 对于某个比较少的label,可以复制样本达到增大样本量的效果,一般这种方法太合理,过分强调已有的样本,放大噪声样本,过拟合。 也可以结合SMOTE方法,这种方法不是单纯的重复样本,而是通过某种方式对已有的...
  • 样本不均衡案例及解决办法

    千次阅读 2020-07-08 12:12:39
    注意:在进行数据增广的时候一定要将测试集和验证集单独提前分开,扩张只在训练集上进行,否则会造成在增广的验证集和测试集上进行验证和测试,在实际上线后再真实...参考文献:样本不平衡问题分析与部分解决办法 ...
  • 样本不均衡分类问题

    2020-02-23 19:45:40
    样本不均衡包括样本类别不均衡样本难易程度不均衡样本不均衡导致的分类效果较差本质上是样本难易程度不均衡导致的[^1]。 对本质原因的个人理解 个人理解,如果一个样本集中的所有样本都能够被一个模型非常容易的...
  • Auc样本不均衡、PR样本不均衡

    千次阅读 2019-11-11 15:16:13
    参考链接
  • 更改模型 前言 本次主要是基于YOLOV5为baseline来解决样本不均衡的问题,来提高得分。太了解的可以先看看上一篇文章 目标检测之牛仔行头检测(上)—— 读取coco数据集并转换为yolo数据格式,以YOLOV5为baseline...
  • 什么是样本不均衡问题?如何解决

    千次阅读 2020-12-21 15:19:24
    样本分布不均衡就是指样本差异非常大,例如共1000条数据样本的数据集中,其中占有10条样本分类,其特征无论如何你和也无法实现完整特征值的覆盖,此时属于严重的样本分布不均衡。 为何要解决样本不均衡样本分部...
  • 今天调研不均衡样本对神经网络的影响。 2020/04/06 A systematic study of the class imbalance problem in convolutional neural networks 数据集中样本不均衡问题对神经网络的影响研究 Abstract 本文聚焦于样本不...
  • SVM中的样本不均衡问题

    千次阅读 2020-04-03 17:11:16
    #精确度(查准率) #无样本均衡 precision = (y[y == clf.predict(X)] == 1).sum()/(clf.predict(X) == 1).sum() print(precision) #有样本均衡 w_precision = (y[y == wclf.predict(X)] == 1).sum()/(wclf.predict...
  • 样本不均衡处理方式

    千次阅读 2020-03-15 21:03:29
    自定义标题一、数据平衡现象二、处理方法1、采样2、加权3、合成数据4、更换算法5、使用其他的评价指标三...平衡程度(即正负样本比例类似)的两个问题,解决的难易程度也可能不同,因为问题难易程度还取决于我们所...
  • 来自: ... 目录一、提出背景二、设计思路三、总结优缺点 一、提出背景 ...对于one-stage的检测器准确率高的问题,论文作者给出了解释:由于正负样本不均衡的问题(感觉理解成简单-难分样本不均衡
  • 1 什么是非均衡2 10种解决办法2.1 重采样(六种方法)2.2 调整损失函数2.3 异常值检测框架2.4 二分类变成多分类2.5 EasyEnsemble3 为什么树模型担心这个问...
  • 对于数量级较小的样本,考虑增大其在计算损失时负样本的损失,即,可作如下理解:假设大小样本比例为5:1,在训练时,如果发生小样本被误判为大样本的情况,计算损失时将这些负样本的损失扩大5倍...
  • #分类案例,样本不均衡 import numpy as np import pandas as pd from xgboost import XGBClassifier from sklearn.datasets import make_blobs from sklearn.model_selection import train_test_split from sklearn...
  • 公开数据集在上线前通常都经过了样本均衡处理,因此基于这些数据训练出来的模型表现通常都比较好。但如果是自己在解决实际问题,则经常会遇到样本均衡,这会导致模型出现过拟合、泛化能力较差的问题,本文就介绍...
  • 1、上采样(over-sampling):通过增加分类中少数类样本的数量来实现样本均衡。比较好的方法有SMOTE算法,通过插值的方式加入近邻的数据点。 2、下采样(under-sampling):通过减少分类中多数类样本的数量来实现...
  • 贝叶斯由于分类效力不算太好,因此对样本不平衡极为敏感,本文将讨论样本不平衡问题会如何影响到贝叶斯。 先看代码: import numpy as np from sklearn.naive_bayes import MultinomialNB, GaussianNB, BernoulliNB ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,800
精华内容 10,320
关键字:

样本不均衡

友情链接: armijo.zip