Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >关于处理样本不平衡问题的Trick整理

关于处理样本不平衡问题的Trick整理

作者头像
昱良
发布于 2018-04-08 10:17:04
发布于 2018-04-08 10:17:04
1.4K0
举报

关键字全网搜索最新排名

机器学习算法】:排名第一

【机器学习】:排名第一

Python:排名第三

【算法】:排名第四

转自:小象

在银行欺诈检测、实时竞价或网络入侵检测等领域通常是什么样的数据集呢?这些领域使用的数据通常有不到1%少量但“有趣的”事件,例如欺诈者利用信用卡,用户点击广告或者损坏的服务器扫描网络。 然而,大多数机器学习算法不能有效的处理不平衡数据集的学习问题,以下七种技术可以有效的帮助你处理上述存在的问题。

1.使用正确的评估指标

如上图,对于该问题如果使用精度来衡量模型的好坏,将所有测试样本分类为“0”的模型具有很好的准确性(99.8%),但显然这种模型不能为我们提供任何有价值的信息。

在这种情况下,可以使用如下所示的其他指标:

  • 精度/特异性:有多少个选定的相关实例。
  • 调用/灵敏度:选择了多少个相关实例。
  • F1得分:精度和召回的谐波平均值。
  • MCC:观察和预测的二进制分类之间的相关系数。
  • AUC:正确率与误报率之间的关系。

2.重新采样训练集

欠采样通过减少冗余类的数量来平衡数据集。通过将所有样本保存在少数类中,并在多数类中随机选择相等数量的样本,可以检索平衡的新数据集以进一步建模。

相反,当数据量不足时应采用过采样,尝试通过增加稀有样本的数量来平衡数据集。不是去除样本的多样性,而是通过使用诸如重复、自举或SMOTE等方法生成新样本(合成少数过采样技术)

请注意,一种重采样方法与另一种相比没有绝对的优势。这两种方法的应用取决于它适用的用例和数据集本身。

3.以正确的方式使用K-fold交叉验证

需要注意的是,使用过采样方法来解决不平衡问题时,应适当地应用交叉验证。过采样会观察到稀有的样本,并根据分布函数自举生成新的随机数据。如果在过采样之后应用交叉验证,那么我们所做的就是将模型过度适应于特定的人工引导结果。这就是为什么在过采样数据之前应该始终进行交叉验证,就像实现特征选择一样。只有对数据进行重复采样,可以将随机性引入到数据集中,以确保不会出现过拟合问题。

4.组合不同的重采样数据集

生成通用模型的最简单方法是使用更多的数据。问题是,开箱即用的分类器,如逻辑回归或机森随林,倾向于通过丢弃稀有样例来推广。一个简单的最佳实现是建立n个模型,使用少数类的所有样本和数量充足类别的n个不同样本。假如您想要组合10个模型,需要少数类1000例,随机抽取10.000例多数类的样本。然后,只需将10000个样本分成10个块,训练出10个不同的模型。

如果有大量数据,那么这种方法很简单,完美地实现水平扩展,因此可以在不同的集群节点上训练和运行模型。集合模型也趋于一般化,使得该方法容易处理。

5.用不同比例重新采样

以前的方法可以通过少数类和多数类之间的比例进行微调。最好的比例在很大程度上取决于所使用的数据和模型。但是,不是在整体中以相同的比例训练所有模型,合并不同的比例值得尝试。 所以如果训练了10个模型,对一个模型比例为1:1(少数:多数),另一个1:3甚至是2:1的模型是有意义的。 根据使用的模型可以影响一个类获得的权重。

6. 对多数类进行聚类

Sergey Quora提出了一种优雅的方法。他建议不要依赖随机样本来覆盖训练样本的种类,而是将r个分组中的多数类进行聚类,其中r为r中的样本数。对于每个组,只保留质心(样本的中心)。然后该模型仅保留了少数类和样本质心来训练。

7.设计自己的模型

以前的所有方法都集中在数据上,并将模型作为固定的组件。但事实上,如果模型适用于不平衡数据,则不需要对数据进行重新采样。如果数据样本没有太多的倾斜,著名的XGBoost已经是一个很好的起点,因为该模型内部对数据进行了很好的处理,它训练的数据并不是不平衡的。但是再次,如果数据被重新采样,它只是悄悄进行。

通过设计一个损失函数来惩罚少数类的错误分类,而不是多数类,可以设计出许多自然泛化为支持少数类的模型。例如,调整SVM以相同的比例惩罚未被充分代表的少数类的分类错误。

综上所述

这不是一份独家的技术清单,而是处理不平衡数据的一个起点。

没有适合所有问题的最佳方法或模型,强烈建议尝试不同的技术和模型来评估哪些方法最有效。 可以尝试创造性地结合不同的方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-12-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习算法与Python学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
独家 | 处理非均衡数据的7种技术
在这些领域的数据通常只占有总数据量不到1%,为罕见但“有趣的”事件(例如,骗子使用信用卡、用户点击广告或入侵服务器扫描其网络)。然而,绝大多数机器学习算法并不能很好地处理这些非均衡的数据集。利用以下七种技术可以通过训练一个分类器来检测出上述异常类。
数据派THU
2023/03/29
3490
独家 | 处理非均衡数据的7种技术
干货整理:处理不平衡数据的技巧总结!收好不谢
文:Rick Radewagen 译:李萌 在银行欺诈检测,市场实时竞价或网络入侵检测等领域通常是什么样的数据集呢? 在这些领域使用的数据通常有不到1%少量但“有趣的”事件,例如欺诈者利用信用卡,用户
朱晓霞
2018/04/18
1.3K0
干货整理:处理不平衡数据的技巧总结!收好不谢
机器学习中的数据不平衡解决方案大全
在机器学习任务中,我们经常会遇到这种困扰:数据不平衡问题。 数据不平衡问题主要存在于有监督机器学习任务中。当遇到不平衡数据时,以总体分类准确率为学习目标的传统分类算法会过多地关注多数类,从而使得少数类样本的分类性能下降。绝大多数常见的机器学习算法对于不平衡数据集都不能很好地工作。 本文介绍几种有效的解决数据不平衡情况下有效训练有监督算法的思路: 1、重新采样训练集 可以使用不同的数据集。有两种方法使不平衡的数据集来建立一个平衡的数据集——欠采样和过采样。 1.1.
机器学习算法工程师
2018/03/06
1K0
机器学习中的数据不平衡解决方案大全
数据不平衡问题都怎么解?
类似bagging的思想,有多个基学习器,每个基学习器都抽取一部分majority class,并且使用全部的minority class。这样,每个majority样本都能够被利用上,不会有信息的损失。
NewBeeNLP
2021/12/02
7610
数据不平衡问题都怎么解?
处理非平衡数据的七个技巧
摘要:本文介绍了在入侵检测、实时出价等数据集非常不平衡的领域应用的数据处理技术。 关键字:平衡数据,数据准备,数据科学 原文:7 Techniques to Handle Imbalanced Data http://www.kdnuggets.com/2017/06/7-techniques-handle-imbalanced-data.html 作者:Ye Wu & Rick Radewagen, IE Business School. 译者:王安阳 介绍 在例如银行欺诈检测、市场实时出价、网络
用户1737318
2018/07/20
4720
解决分类样本不平衡问题 ~ ML&DM面试高频问题
样本不平衡会导致出现以下的问题: (1)少数类所包含的信息很有限,难以确定少数类数据的分布,即难以在内部挖掘规律,造成少数类的识别率低; (2)很多分类算法采用分治法,样本空间的逐渐划分会导致数据碎片问题,这样只能在各个独立的子空间中寻找数据的规律,对于少数类来说每个子空间中包含了很少的数据信息,一些跨空间的数据规律就不能被挖掘出来。 (3)不恰当的归纳偏置系统在存在不确定时往往倾向于把样本分类为多数类。 研究表明,在某些应用下,1∶35的比例就会使某些分类方法无效,甚至1∶10的比例也会使某些分类方法无效
昱良
2018/04/08
1.4K0
一文解决样本不均衡(全)
样本(类别)样本不平衡(class-imbalance)指的是分类任务中不同类别的训练样例数目差别很大的情况,一般地,样本类别比例(Imbalance Ratio)(多数类vs少数类)明显大于1:1(如4:1)就可以归为样本不均衡的问题。现实中,样本不平衡是一种常见的现象,如:金融欺诈交易检测,欺诈交易的订单样本通常是占总交易数量的极少部分,而且对于有些任务而言少数样本更为重要。
算法进阶
2022/06/02
1.9K0
一文解决样本不均衡(全)
八个方法干掉不平衡集
I have a binary classification problem and one class ispresent with 60:1 ratio in my training set. I used the logistic regression andthe result seems to just ignores one class.
哒呵呵
2018/08/06
4860
机器学习中如何处理不平衡数据?
假设老板让你创建一个模型——基于可用的各种测量手段来预测产品是否有缺陷。你使用自己喜欢的分类器在数据上进行训练后,准确率达到了 96.2%!
机器之心
2019/03/06
1.3K0
机器学习中如何处理不平衡数据?
极端类别不平衡数据下的分类问题研究综述 | 硬货
不平衡学习是机器学习问题的一个重要子域,其主要关注于如何从类别分布不均衡的数据中学习数据的模式。在这篇文章中我们主要关注不平衡分类问题,特别地,我们主要关注类别极端不平衡场景下的二分类问题所面临的困难。
磐创AI
2019/06/19
9680
深度学习训练数据不平衡问题,怎么解决?
当我们解决任何机器学习问题时,我们面临的最大问题之一是训练数据不平衡。不平衡数据的问题在于学术界对于相同的定义、含义和可能的解决方案存在分歧。我们将尝试用图像分类问题来解开训练数据中不平衡类别的奥秘。
AI研习社
2018/07/26
5270
深度学习训练数据不平衡问题,怎么解决?
如何处理机器学习中类的不平衡问题
不平衡类使机器学习的“准确性”受到破坏。这在机器学习(特别是分类)中是一个非常普遍的问题,在每个类中都有一个不成比例的数据集。标准的准确性不再可靠地度量性能,这使得模型培训更加棘手。 在本教程中,我
AiTechYun
2018/03/02
1.3K0
如何处理机器学习中类的不平衡问题
数据不平衡问题
对于一些二分类问题或者多分类问题,部分类别数据相较于其它类别数据而言是要小得多的,这种现象就是数据不平衡问题。数据不平衡问题会导致什么情况呢?假如是基于一些特征判断病人是否患有该疾病,且该疾病是一个小概率获得的疾病,假设概率为0.0001, 那么表明有10000个来看病的人中只有一个人患有该疾病,其余9999个人都是正常病人。如果用这样的一批数据进行训练模型算法,即使该模型什么都不学,都判定为正常人,其准确率高达0.9999, 完全满足上线要求。但我们知道,这个模型是不科学的,是无用的模型。这种数据分布严重不平衡的情况下,模型将具有严重的倾向性,倾向于数据样本的多的类别,因为模型每次猜样本多对应的类别的对的次数多。因此,如果直接将严重数据不平衡的数据拿来直接训练算法模型,将会遇到上述问题。一般在10倍以上可以判定为数据不平衡问题。
用户3578099
2023/02/14
8670
数据不平衡问题
不平衡数据集的建模的技巧和策略
来源:Deephub Imba 本文约4200字,建议阅读8分钟 本文介绍了不平衡数据集的建模技巧和策略。 不平衡数据集是指一个类中的示例数量与另一类中的示例数量显著不同的情况。例如在一个二元分类问题中,一个类只占总样本的一小部分,这被称为不平衡数据集。类不平衡会在构建机器学习模型时导致很多问题。 不平衡数据集的主要问题之一是模型可能会偏向多数类,从而导致预测少数类的性能不佳。这是因为模型经过训练以最小化错误率,并且当多数类被过度代表时,模型倾向于更频繁地预测多数类。这会导致更高的准确率得分,但少数类别
数据派THU
2023/02/28
8340
不平衡数据集的建模的技巧和策略
如何修复不平衡的数据集
我们将介绍几种处理不平衡数据集的替代方法,包括带有代码示例的不同重采样和组合方法。
计算机与AI
2020/11/19
1.3K0
如何修复不平衡的数据集
处理不平衡数据的过采样技术对比总结
在不平衡数据上训练的分类算法往往导致预测质量差。模型严重偏向多数类,忽略了对许多用例至关重要的少数例子。这使得模型对于涉及罕见但高优先级事件的现实问题来说不切实际。
deephub
2023/12/28
1.1K0
处理不平衡数据的过采样技术对比总结
机器学习:如何解决类别不平衡问题
类别不平衡是机器学习中的一个常见问题,尤其是在二元分类领域。当训练数据集的类分布不均时会发生这种情况,从而导致训练模型存在潜在偏差。不平衡分类问题的示例包括欺诈检测、索赔预测、违约预测、客户流失预测、垃圾邮件检测、异常检测和异常值检测。为了提高我们模型的性能并确保其准确性,解决类不平衡问题很重要。
数据科学工厂
2023/02/27
1.5K0
机器学习:如何解决类别不平衡问题
基于有效样本的类别不平衡损失CB-Loss
每天给你送来NLP技术干货! ---- 干货 作者:Sik-Ho Tsang 来自:炼丹笔记     本文综述了康奈尔大学、康奈尔科技、谷歌Brain和Alphabet公司的基于有效样本数的类平衡损失(CB损失)。在本文中,设计了一种重新加权的方案,利用每个类的有效样本数来重新平衡损失,称为类别平衡损失。使用每个类的有效样本数量来重新为每个类的Loss分配权重,效果优于RetinaNet中的Focal Loss。 1. 类别平衡问题     两个类,分别来自长尾数据集的头部和尾部(iNatur
zenRRan
2022/08/26
4990
基于有效样本的类别不平衡损失CB-Loss
独家 | 一文教你如何处理不平衡数据集(附代码)
本文作者用python代码示例解释了3种处理不平衡数据集的可选方法,包括数据层面上的2种重采样数据集方法和算法层面上的1个集成分类器方法。
数据派THU
2019/05/31
1.1K0
【机器学习】类别不平衡数据的处理
在现实环境中,采集的数据(建模样本)往往是比例失衡的。比如:一个用于模型训练的数据集中,A 类样本占 95%,B 类样本占 5%。
小言从不摸鱼
2024/09/10
1680
相关推荐
独家 | 处理非均衡数据的7种技术
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档