先举一个“恐怖”的例子,直观的感受一下样本不平衡问题:

你根据1000个正样本和1000个负样本正确训练出了一个准确率90%召回率90%的分类器,且通过实验验证没有欠采样过采样的问题哦~完美的样本,完美的模型,破费,你心里暗自得意。然后模型上线,正式预测每天的未知样本~。

开始一切都很美好,准确率召回率都很好。直到有一天,数据发生了一点变化,还是原来的数据类型和特征,只是每天新数据中正负样本变成了100个正样本,10000个负样本。注意,先前准确率90%的另一种表达是负样本有10%的概率被误检为正样本。好了,模型不变,现在误检的负样本数是10000*0.1=1000个,正样本被检出100*0.9(召回)=90个,好了,这个时候召回率不变仍为90%,但是新的准确率=90/(1000+90)=8.26% 。震惊吗!?恐怖吗!?

结论: 同一个模型仅仅是改变了验证集的正负样本比例,模型已经从可用退化成不可用了!!样本不平衡问题可怕就可怕在这,往往你的模型参数,训练,数据,特征都是对的!能做的都做了,但你的准确率就是上不去!!绝望吧。。。。。。

问题定义:数据集中,每个类别下的样本数目相差很大(数量级上的差距)。以下以二分类问题为例说明。

1. SMOTE(Synthetic Minority Over-sampling Technique)过采样小样本(扩充小类,产生新数据)
即该算法构造的数据是新样本,原数据集中不存在的。该基于距离度量选择小类别下两个或者更多的相似样本,然后选择其中一个样本,并随机选择一定数量的邻居样本对选择的那个样本的一个属性增加噪声,每次处理一个属性。这样就构造了更多的新生数据。(优点是相当于合理地对小样本的分类平面进行的一定程度的外扩;也相当于对小类错分进行加权惩罚(解释见3))

2. 欠采样大样本(压缩大类,产生新数据)
设小类中有N个样本。将大类聚类成N个簇,然后使用每个簇的中心组成大类中的N个样本,加上小类中所有的样本进行训练。(优点是保留了大类在特征空间的分布特性,又降低了大类数据的数目)

3. 对小类错分进行加权惩罚
对分类器的小类样本数据增加权值,降低大类样本的权值(这种方法其实是产生了新的数据分布,即产生了新的数据集,译者注),从而使得分类器将重点集中在小类样本身上。一个具体做法就是,在训练分类器时,若分类器将小类样本分错时额外增加分类器一个小类样本分错代价,这个额外的代价可以使得分类器更加“关心”小类样本。如penalized-SVM和penalized-LDA算法。
对小样本进行过采样(例如含L倍的重复数据),其实在计算小样本错分cost functions时会累加L倍的惩罚分数。

4. 分治ensemble
将大类中样本聚类到L个聚类中,然后训练L个分类器;每个分类器使用大类中的一个簇与所有的小类样本进行训练得到;最后对这L个分类器采取少数服从多数对未知类别数据进行分类,如果是连续值(预测),那么采用平均值。

5. 分层级ensemble
使用原始数据集训练第一个学习器L1;将L1错分的数据集作为新的数据集训练L2;将L1和L2分类结果不一致的数据作为数据集训练L3;最后测试集上将三个分类器的结果汇总(结合这三个分类器,采用投票的方式来决定分类结果,因此只有当L2与L3都分类为false时,最终结果才为false,否则true。)

6. 基于异常检测的分类
用异常检测算法(如高斯混合模型、聚类等)检测得到离群点或异常点;再对这些异常点为训练集学习一个分类器。

7. 其他...待补充。
--------------------- 
作者:songhk0209 
来源:CSDN 
原文:https://blog.csdn.net/songhk0209/article/details/71484469 
版权声明:本文为博主原创文章,转载请附上博文链接!

解决样本不平衡问题的奇技淫巧 汇总相关推荐

  1. 怎样解决样本不平衡问题

    怎样解决样本不平衡问题 参考文章: (1)怎样解决样本不平衡问题 (2)https://www.cnblogs.com/guoruibing/articles/9561035.html 备忘一下.

  2. [机器学习] focal loss:解决样本不平衡的一种通用方案

    文章目录 focal loss 提出的场景和针对的问题 focal loss 提出的场景:目标检测 focal loss 针对的问题:类别不平衡 如何处理目标检测下的类别不平衡 如何理解目标检测场景下 ...

  3. 【深度学习】Focal Loss 与 GHM——解决样本不平衡问题

    Focal Loss 与 GHM Focal Loss Focal Loss 的提出主要是为了解决难易样本数量不平衡(注意:这有别于正负样本数量不均衡问题)问题.下面以目标检测应用场景来说明. 一些 ...

  4. 【机器学习】机器学习中样本不平衡,怎么办?

    在银行要判断一个"新客户是否会违约",通常不违约的人VS违约的人会是99:1的比例,真正违约的人 其实是非常少的.这种分类状况下,即便模型什么也不做,全把所有人都当成不会违约的人, ...

  5. 机器学习中样本不平衡,怎么办?

    在银行要判断一个"新客户是否会违约",通常不违约的人VS违约的人会是99:1的比例,真正违约的人 其实是非常少的.这种分类状况下,即便模型什么也不做,全把所有人都当成不会违约的人, ...

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

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

  7. 解决类别不平衡问题的方法综述

    一.数据不平衡 1.1 什么是数据不平衡 在学术研究与教学中,很多算法都有一个基本假设,那就是数据分布是均匀的.当我们把这些算法直接应用于实际数据时,大多数情况下都无法取得理想的结果.因为实际数据往往 ...

  8. 目标检测中的样本不平衡处理方法——OHEM, Focal Loss, GHM, PISA

    GitHub 简书 CSDN 文章目录 1. 前言 2. OHEM 3. Focal Loss 3.1 Cross Entropy 3.2 Balanced Cross Entropy 3.3 Foc ...

  9. 堪比Focal Loss!解决目标检测中样本不平衡的无采样方法

    训练目标检测模型的一个难点是样本不均衡,特别是正负样本比例严重失衡.目前解决这类问题主要是两种方案(见综述Imbalance Problems in Object Detection: A Revie ...

最新文章

  1. 安卓关于fragment切换后继续运行的问题!
  2. vb Select Case的使用 字符串整形的转换 输入错误str的直接输出
  3. 学习面试题Day08
  4. Exception.ToString()使用及其他方法比较
  5. LaTeX中常用的模板,命令和技巧
  6. F28335第一篇——看门狗的开断
  7. 日常思维方法:演绎法 归纳法
  8. mac怎么无线打印机连接到服务器,Mac连接打印机的方法
  9. android 有线网络,安卓手机免费“有线”上网
  10. iPhone设备上安装beta版本系统,在浏览器中搜索网址 beta.apple.com
  11. DAY15:尚学堂高琪JAVA(129~131)队列,Enumeration和Hashtable
  12. 15个经典营销激励小故事
  13. 结对项目-最长英语单词链
  14. OSPF FA地址分析
  15. 为什么Vue(默认情况下)比React性能更好
  16. 延边大学计算机专业考研,计算机专业考研成功经验谈
  17. cpld和fpga区别
  18. 性能优化:Vue-ECharts使用CDN
  19. 032颜色的调配与三种屏显模式
  20. iba测评题目_靠谱测评丨6国12款大牌纯牛奶盲测,谁最好喝?结果万万没想到

热门文章

  1. python 序列解包(解压缩)
  2. python基础教程:python中@的用法
  3. Python取出两个文件中相同的电话号码及地址(文件类型为:txt文本)
  4. 计算机网络基础ios指令,蔡少云——计算机网络实验:IOS命令基础及交换机基本配置.doc...
  5. Tensorflow yolov3 Intel Realsense D435 多进程multiprocessing线程池pool识别时间测试
  6. windows下如何查看设备的idVendor(厂商标识)和idProduct(产品标识)?
  7. Rise of Shadows 闰年leap year-无法线性筛
  8. springboot获取payload_Spring Boot 使用 JSR303 实现参数验证
  9. 训练集 测试集 验证集_Python机器学习实战:划分训练集和检验集
  10. spring项目中加载配置文件