解决样本不均衡的问题很多,主流的几个如下:

1.样本的过采样和欠采样。

2..使用多个分类器进行分类。

3.将二分类问题转换成其他问题。

4.改变正负类别样本在模型中的权重。

一、样本的过采样和欠采样。

1.过采样:将稀有类别的样本进行复制,通过增加此稀有类样本的数量来平衡数据集。该方法适用于数据量较小的情况。

2.欠抽样:从丰富类别的样本中随机选取和稀有类别相同数目的样本,通过减少丰富类的样本量啦平衡数据集。该方法适用于数据量较大的情况。

3.也可以将过采样和欠采样结合在一起使用。

4.使用SMOTE方法来构造样本。

  SMOTE算法是一种过采样的算法。这个算法不是简单的复制已有的数据,而是在原有数据基础上,通过算法产生新生数据。

  算法思想:基于距离度量的方式计算两个或多个稀有类样本之间的相似性。

       然后选择其中的一个样本作为基础样本,

       再在邻居样本中随机选取一定数量的样本对那个基础样本的一个属性进行噪声。每次处理一个属性,通过这样的方式产生新生数据。

二、使用多个分类器进行分类。

  方法一中介绍的过采样,欠采样,都存在相应的问题。

  过采样:可能会存在过拟合问题。(可以使用SMOTE算法,增加随机的噪声的方式来改善这个问题)

  欠采样:可能会存在信息减少的问题。因为只是利用了一部分数据,所以模型只是学习到了一部分模型。

  有以下两种方法可以解决欠采样所带来的问题。

  方法一:模型融合 (bagging的思想 )

  思路:从丰富类样本中随机的选取(有放回的选取)和稀有类等量样本的数据。和稀有类样本组合成新的训练集。这样我们就产生了多个训练集,并且是互相独立的,然后训练得到多个分类器。

     若是分类问题,就把多个分类器投票的结果(少数服从多数)作为分类结果。

     若是回归问题,就将均值作为最后结果。

  方法二:增量模型 (boosting的思想)

  思路:使用全部的样本作为训练集,得到分类器L1

     从L1正确分类的样本中和错误分类的样本中各抽取50%的数据,即循环的一边采样一个。此时训练样本是平衡的。训练得到的分类器作为L2.

     从L1和L2分类结果中,选取结果不一致的样本作为训练集得到分类器L3.

     最后投票L1,L2,L3结果得到最后的分类结果。

三、将二分类问题转换成其他问题。

  可以将不平衡的二分类问题转换成异常点检测,或者一分类问题(可使用one-class svm建模)

四、改变正负类别样本在模型中的权重。

  使用代价函数学习得到每个类的权值,大类的权值小,小类的权值大。刚开始,可以设置每个类别的权值与样本个数比例的倒数,然后可以使用过采样进行调优。

五、注意点:

  1.不平衡问题的评价指标

  准确度这个评价指标在类别不均衡的分类任务中并不能work。几个比传统的准确度更有效的评价指标:

  混淆矩阵(Confusion Matrix):使用一个表格对分类器所预测的类别与其真实的类别的样本统计,分别为:TP、FN、FP与TN。
  精确度(Precision)
  召回率(Recall)
  F1得分(F1 Score):精确度与找召回率的加权平均。
  特别是:

  Kappa (Cohen kappa)
  ROC曲线(ROC Curves):见Assessing and Comparing Classifier Performance with ROC Curves

  2.交叉验证

  在K-Fold 校验中,每一份数据集中原则上应该保持类别样本比例一样或者近似,如果每份数据集中小类样本数目过少,那么应该降低K的值,知道小类样本的个数足够。

如何解决样本不均衡问题相关推荐

  1. 【机器学习】一文解决样本不均衡(全)

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

  2. 寻找解决样本不均衡方法之Focal Loss与GHM

    寻找解决样本不均衡方法之Focal Loss与GHM 主要参考资料:5分钟理解Focal Loss与GHM--解决样本不平衡利器 - 知乎 (zhihu.com) Focal Loss的引入主要是为了 ...

  3. GHM------Gradient Harmonized Single-stage Detector 从梯度的方向来解决样本不均衡的问题

    最近GHM太热门了,因此最近在做GHM的实验,因此做个笔记. 文章:https://arxiv.org/pdf/1811.05181.pdf code:https://github.com/libuy ...

  4. 关于keras的class_weight与sample_weight(解决样本不均衡或类别不均衡问题)

    https://blog.csdn.net/anjingshen/article/details/93322787

  5. 综述:解决目标检测中的样本不均衡问题

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨SFXiang 来源丨AI算法修炼营 编辑丨极市平台 极市导 ...

  6. 什么是样本不均衡问题?如何解决

    何为样本不均衡: 样本分布不均衡就是指样本差异非常大,例如共1000条数据样本的数据集中,其中占有10条样本分类,其特征无论如何你和也无法实现完整特征值的覆盖,此时属于严重的样本分布不均衡. 为何要解 ...

  7. 机器学习-10:MachineLN之样本不均衡

    版权声明:本文为博主原创文章,未经博主允许不得转载.有问题可以加微信:lp9628(注明CSDN). https://blog.csdn.net/u014365862/article/details/ ...

  8. 解决one-stage目标检测正负样本不均衡的另类方法--Gradient Harmonized

    正负样本不均衡问题一直是One-stage目标检测中被大家所诟病的地方,He Keming等人提出了Focal Loss来解决这个问题.而AAAI2019上的一篇论文<Gradient Harm ...

  9. 如果解决长尾数据(样本不均衡)

    最近突然高产,苦逼的秋招开始了,哭哭 有几种已经常用的方法: 过采样和重采样 每个Batch对每类样本设置比例,保证在一个Batch里是相对均衡的 以上这些的缺点很明显:对于大样本采样过少,会导致某张 ...

  10. Java机器学习库ML之五样本不均衡

    样本不均衡的问题是指训练集中类别之间的样本数据量比例失衡.有研究表明,部分学习任务,在类别出现1∶35比例时就会使某些分类学习方法无效,甚至1∶10比例也会.样本不均衡导致的问题有: 1)少数类所包含 ...

最新文章

  1. Java基础-常量,变量,成员变量,局部变量
  2. java中的重载和重写
  3. 参加51CTO学院软考培训,我通过啦
  4. 怎么把截屏的一部分内容涂掉_观影手帐怎么做?这里有妙招!
  5. qt中QListView的用法和QModelIndex的使用
  6. tomcat9控制台中文乱码
  7. spring事务的传播机制新解
  8. .NET的资源并不限于.resx文件,你可以采用任意存储形式[上篇] (转载)
  9. 信息学奥赛一本通 1127:图像旋转 | OpenJudge NOI 1.8 11:图像旋转
  10. Oracle 查看 表 存储过程 触发器 函数 等对象定义语句的方法
  11. 计算机网络课设不会,计算机网络课设讲述.doc
  12. 【SpringBoot基础知识】如何在springboot中使用多线程
  13. 基于JAVA+SpringMVC+MYSQL的自动排课系统
  14. java中的数组增删查改操作,java数组实现增删改查
  15. 微信小程序报Cannot read property ‘setData‘ of undefined的错误
  16. 接口测试工具-Jmeter使用笔记(四:响应断言)
  17. HoloWAN网络仿真损伤仪的基本功能及图解
  18. 图像检索基于BOF(Bag-Of-Features Models)
  19. 【破解工具】Hashcat加密破解工具
  20. 思科N9K交换机配置QOS

热门文章

  1. python绘制动态心电图_长时动态心电图ECG数据可视化
  2. Android项目开发实战——简单备忘录
  3. python实现csdn博客下载
  4. 全球10大开放源代码项目
  5. python机器学习-乳腺癌细胞挖掘
  6. 达梦数据库Linux下配置odbc数据源
  7. android tv 蓝牙服务_Android TV Remote Service
  8. 手把手教你win10下lex与yacc的安装
  9. Ubuntu18.04安装网络调试助手 NetAssist
  10. hex2bin和bin2hex