20220302

对连续性的不平衡也可以参照分类型数据的不平衡处理方法?划分为多个集合求平均值?

20220125

  # 数据划分negtive_rows = negtive_data.shape[0]positive_rows = postive_data.shape[0]pos_neg_ratio = negtive_rows / positive_rowsdata_divide_nums = np.round(pos_neg_ratio)data_divide_nums = int(data_divide_nums)# 凑成数目相等的数据if data_divide_nums > pos_neg_ratio:  # 进位total_rows = data_divide_nums * negtive_rowspostive_data = pd.concat([postive_data,postive_data],axis=0)postive_data = postive_data.iloc[0:total_rows,:]else:total_rows = (data_divide_nums+1) * negtive_rowspostive_data = pd.concat([postive_data, postive_data], axis=0)postive_data = postive_data.iloc[0:total_rows,:]正负样本凑齐数目相同的处理

20220104

基于改进聚类的电信客户流失预测分析

20211010

集成方法——使用所有分类中的小样本量,同时从分类中的大样本量中随机抽取数据来与小样本量合并构成训练集,这样反复多次会得到很多训练集,从而训练出多个模型。例如,在数据集中的正、负样本分别为100和10000条,比例为1:100,此时可以将负样本随机切分为100份,每份100条数据,然后每次形成训练集时使用所有的正样本(100条)和随机抽取的负样本(100条)形成新的训练数据集。如此反复可以得到100个模型。然后继续集成表决
当然常用的是上述集成方法,但是不是直接进行使用,试想训练100个模型进行表决,离线会很麻烦,而且线上使用也不现实。

所以通常会进行修改使用,一般情况下在选择正负样本时会进行相关比例的控制,假设正样本的条数是N,则负样本的条数会控制在2N或者3N,即遵循1:2或者1:3的关系,当然具体的业务场景下要进行不同的尝试和离线评估指标的对比。

20210114

多数样本和少数样本类别比不超过100?

在银行欺诈检测,市场实时竞价或网络入侵检测等领域通常是什么样的数据集呢?

在这些领域使用的数据通常有不到1%少量但“有趣的”事件,例如欺诈者利用信用卡,用户点击广告或者损坏的服务器扫描网络。

然而,大多数机器学习算法对于不平衡数据集的处理不是很好。 以下七种技术可以帮你训练分类器来检测异常类。

使用正确的评估指标
对使用不平衡数据生成的模型应用不恰当的评估指标可能是危险的。

想象一下,我们的训练数据如上图所示。 如果使用精度来衡量模型的好坏,使用将所有测试样本分类为“0”的模型具有很好的准确性(99.8%),但显然这种模型不会为我们提供任何有价值的信息。

在这种情况下,可以应用其他替代评估指标,例如:

精度/特异性:有多少个选定的相关实例。

调用/灵敏度:选择了多少个相关实例。

F1得分:精度和召回的谐波平均值。

MCC:观察和预测的二进制分类之间的相关系数。

AUC:正确率与误报率之间的关系。

重新采样训练集

除了使用不同的评估标准外,还可以选择不同的数据集。使平衡数据集不平衡的两种方法:欠采样和过采样。

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

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

请注意,一种重采样方法与另一种相比没有绝对的优势。这两种方法的应用取决于它适用的用例和数据集本身。过度取样和欠采样不足结合使用也会有很好的效果。

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

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

组合不同的重采样数据集

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


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

用不同比例重新采样


对多数类进行聚类

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

设计自己的模型

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

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


综上所述

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

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

同样重要的是,要注意在不平衡类出现的许多领域(例如欺诈检测,实时竞价)中,“市场规则”正在不断变化。所以,要查看一下过去的数据是否已经过时了。

20211010

https://mp.weixin.qq.com/s/qxcpRKoUUEH0JXA8_o4G5Q
https://mp.weixin.qq.com/s/QEHAV_rW25E0b0N7POr6tw
关于处理样本不平衡问题的Trick整理
处理非平衡数据的七个技巧

样本不平衡不均衡数据处理相关推荐

  1. pandas数据预处理(标准化归一化、离散化/分箱/分桶、分类数据处理、时间类型数据处理、样本类别分布不均衡数据处理、数据抽样)

    1. 数值型数据的处理 1.1 标准化&归一化 数据标准化是一个常用的数据预处理操作,目的是处理不同规模和量纲的数据,使其缩放到相同的数据区间和范围,以减少规模.特征.分布差异等对模型的影响. ...

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

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

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

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

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

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

  5. [机器学习] XGBoost 样本不平衡问题

    一 样本不平衡 何谓样本不平衡--简单来说就是数据集中负样本的数量远远大于正样本的数量.在这个情况下,模型就会倾向于把样本预测为负样本,因为这是最便捷的降低损失.提高模型准确率的方法.例如:有一个正样 ...

  6. 文本分类 - 样本不平衡的解决思路与交叉验证CV的有效性

    现实情况中,很多机器学习训练集会遇到样本不均衡的情况,应对的方案也有很多种. 笔者把看到的一些内容进行简单罗列,此处还想分享的是交叉验证对不平衡数据训练极为重要. 文章目录 1 样本不平衡的解决思路 ...

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

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

  8. 「二分类算法」提供银行精准营销解决方案(样本不平衡问题)

    项目背景 项目来源于Kesci平台:提供银行精准营销解决方案 项目简介 本练习赛的数据,选自UCI机器学习库中的「银行营销数据集(Bank Marketing Data Set)」 这些数据与葡萄牙银 ...

  9. 目标检测之样本不平衡问题

    样本不平衡问题感觉近期研究的论文相对较多,如:2019 AAAI GHM,2019 CVPR AP-loss, 还有2019 DR loss, 2019 IoU-balanced loss,two-s ...

最新文章

  1. JSP内置对象-config
  2. 独家 | 如何让情绪智力驱动创新?
  3. springboot中如何获取yml配置文件中的配置信息
  4. 云计算面试题及答案,云计算主要就业岗位
  5. Bean的解析与注册
  6. 数字图像处理之边缘检测,图像分割
  7. java 应用是单机集群_【架构】Tomcat单机部署多应用Windows
  8. navicat模型显示注释_RetinaNet模型构建面罩检测器
  9. 在WinCE中实现Screen Rotation(屏幕旋转)
  10. linux设备驱动编写_tasklet机制
  11. android 快速开发(二)辅助类的使用,kotlin枚举类反射
  12. mbit职业测试软件,MBTI职业性格测试(高考专业填报版)(手机版)
  13. 计算机共享访问权限 xp,上面就是xp访问win7共享要密码的解决方法
  14. Unity中摄像机跟随
  15. Apache POI简介
  16. P3387 【模板】缩点 洛谷 java题解 连通图+拓扑排序
  17. 干货分享|数据可视化报表制作技巧
  18. 零极点是怎么产生的对环路的影响
  19. 2021-2027全球与中国含氮饮料市场现状及未来发展趋势
  20. 分形之列维(levy)曲线

热门文章

  1. Jquery DIV滚动至浏览器顶部后固定不动代码
  2. 经典笔试上机考题-表达式求值
  3. Python 读取文本时的 read/readline/readlines
  4. ipykernel_launcher.py: error: unrecognized arguments: -f /Users/apple/Library/Jupyter/runtime/kernel
  5. 通俗理解tf.name_scope()、tf.variable_scope()
  6. Shiro第一个程序:官方快速入门程序Qucickstart详解教程
  7. 2021年大数据常用语言Scala(二十四):函数式编程 过滤  filter
  8. Ubuntu 系统 查看代码的方法在那些地方使用
  9. You must reset your password using ALTER USER statement before executing thi
  10. AHOI2008 聚会