样本不均的问题大家已经很常见了,我们总是能看到某一个类目的数量远高于其他类目,举个例子,曝光转化数远低于曝光未转化数。样本不均严重影响了模型的效果,甚至影响到我们对模型好坏的判断,因为模型对占比比较高的类目准确率非常高,对占比很低的类目预估的偏差特别大,但是由于占比较高的类目对loss/metric影响较大,我们会认为得到了一个较优的模型。比如像是异常检测问题,我们直接返回没有异常,也能得到一个很高的准确率。

重采样

这个是目前使用频率最高的方式,可以对“多数”样本降采样,也可以对“少数”样本过采样,如下图所示:

重采样的缺点也比较明显,过采样对少数样本"过度捕捞",降采样会丢失大量信息。

重采样的方案也有很多,最简单的就是随机过采样/降采样,使得各个类别的数量大致相同。还有一些复杂的采样方式,比如先对样本聚类,在需要降采样的样本上,按类别进行降采样,这样能丢失较少的信息。过采样的话,可以不用简单的copy,可以加一点点"噪声",生成更多的样本。

Tomek links

Tomek连接指的是在空间上"最近"的样本,但是是不同类别的样本。删除这些pair中,占大多数类别的样本。通过这种降采样方式,有利于分类模型的学习,如下图所示:

SMOTE

这个方法可以给少数样本做扩充,SMOTE在样本空间中少数样本随机挑选一个样本,计算k个邻近的样本,在这些样本之间插入一些样本做扩充,反复这个过程,知道样本均衡,如下图所示:

NearMiss

这是个降采样的方法,通过距离计算,删除掉一些无用的点。

  • NearMiss-1:在多数类样本中选择与最近的3个少数类样本的平均距离最小的样本。
  • NearMiss-2:在多数类样本中选择与最远的3个少数类样本的平均距离最小的样本。
  • NearMiss-3:对于每个少数类样本,选择离它最近的给定数量的多数类样本。

NearMiss-1考虑的是与最近的3个少数类样本的平均距离,是局部的;NearMiss-2考虑的是与最远的3个少数类样本的平均距离,是全局的。NearMiss-1方法得到的多数类样本分布也是“不均衡”的,它倾向于在比较集中的少数类附近找到更多的多数类样本,而在孤立的(或者说是离群的)少数类附近找到更少的多数类样本,原因是NearMiss-1方法考虑的局部性质和平均距离。NearMiss-3方法则会使得每一个少数类样本附近都有足够多的多数类样本,显然这会使得模型的精确度高、召回率低。

评估指标

为了避免对模型的误判,避免使用Accuracy,可以用confusion matrix,precision,recall,f1-score,AUC,ROC等指标。

惩罚项

对少数样本预测错误增大惩罚,是一个比较直接的方式。

使用多种算法

模型融合不止能提升效果,也能解决样本不均的问题,经验上,树模型对样本不均的解决帮助很大,特别是随机森林,Random Forest,XGB,LGB等。因为树模型作用方式类似于if/else,所以迫使模型对少数样本也非常重视。

正确的使用K-fold

当我们对样本过采样时,对过采样的样本使用k-fold,那么模型会过拟合我们过采样的样本,所以交叉验证要在过采样前做。在过采样过程中,应当增加些随机性,避免过拟合。

使用多种重采样的训练集

这种方法可以使用更多的数据获得一个泛化性较强的模型。用所有的少数样本,和多种采样的多数样本,构建多个模型得到多个模型做融合,可以取得不错的效果。

重采样使用不同rate

这个方法和上面的方法很类似,尝试使用各种不同的采样率,训练不同的模型。

没有什么解决样本不均最好的方法,以上内容也没有枚举出所有的解决方案,最好的方案就是尝试使用各种方案。

更多干货,请关注公众号:炼丹笔记

对样本不均衡一顿操作相关推荐

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

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

  2. One Class SVM 对于样本不均衡处理思路——拿出白样本建模,算出outlier,然后用黑去检验效果...

    One Class SVM 是指你的training data 只有一类positive (或者negative)的data, 而没有另外的一类.在这时,你需要learn的实际上你training d ...

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

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

  4. 【机器学习基础】八种应对样本不均衡的策略

    1 什么是非均衡 2 10种解决办法 2.1 重采样(六种方法) 2.2 调整损失函数 2.3 异常值检测框架 2.4 二分类变成多分类 2.5 EasyEnsemble 3 为什么树模型不担心这个问 ...

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

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

  6. 样本不均衡问题 (OHEM, Focal loss)

    目录 不均衡问题分析 正负样本不均衡 难易样本不均衡 类别间样本不均衡 常用的解决方法 在线难样本挖掘: OHEM 难负样本挖掘 (Hard Negative Mining, HNM) 在线难样本挖掘 ...

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

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

  8. Python:SMOTE算法——样本不均衡时候生成新样本的算法

    Python:SMOTE算法 直接用python的库, imbalanced-learn imbalanced-learn is a python package offering a number ...

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

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

最新文章

  1. 当面试官问我ArrayList和LinkedList哪个更占空间时,我这么答让他眼前一亮
  2. python asyncio 使用方法
  3. mini-caffe
  4. 【Android 应用开发】Google 官方 EasyPermissions 权限申请库 ( 完整代码示例 | 申请权限 | 申请权限原理对话框 | 引导用户手动设置权限对话框 )
  5. 搭建S3C6410开发板的测试环境
  6. Jupyter 绘图怎么显示中文
  7. MyBatis-Plus_快速入门0222
  8. 不同包之间的继承extends
  9. js_ Math 方法
  10. 畅通工程(并查集模版题)
  11. c++怎么可以在二进制文件中读取带string的数据_文件处理 | csv文件读写
  12. adc0808的c语言编程51,51单片机驱动ADC0808电路图C51及汇编程序
  13. HTML5中的SVG是什么?
  14. 日本护照持有者可以免签进入全球193个目的地,创下历史记录
  15. vi,vim文本编辑器
  16. javascript中实现点赞
  17. onvif 客服端鉴权
  18. 青云QingCloud推出“平步青云”创业扶持计划
  19. 找工作笔试面试那些事儿(17)---linux测试题
  20. 巧用第三方快速开发Android App 热门第三方SDK及框架

热门文章

  1. 洛谷 P2818 天使的起誓
  2. C#将内容导出到Word到指定模板
  3. poj1426(dfs)
  4. 独立式键盘的编程方法 按键的去抖动原理和基本方法
  5. ASP.NET MVC3 + Ninject.Mvc3 依赖注入原来可以这么简单
  6. 键盘映射软件_KOMPLETE KONTROL M32 键盘 MIDI 控制器的评测
  7. GraphPad Prism 9.2 科学绘图 最新 可用
  8. python爬取岗位数据并分析_区块链岗位薪资高,Python爬取300个区块链岗位分析,龙虎榜出炉...
  9. UNICODE与多字节字符集等字符问题
  10. LoadMenu使用方法