什么是不平衡分类?

失衡的分类是有监督的学习问题,其中一个类的人数远远超过其他类。与多级分类问题相比,该问题在二进制分类问题中面临的频率更高。

术语不平衡是指因变量(响应)中遇到的差异。因此,分类失衡问题是因变量的类别比例失衡的问题。换句话说,在类之间表现出不平等分布的数据集被认为是不平衡的。

例如:考虑一个具有100,000个观测值的数据集。该数据集由申请哈佛实习的候选人组成。显然,哈佛大学以其极低的接受率而闻名。因变量表示候选人是否已入围(1)或未入围(0)。经过分析数据,发现大约98%的人没有入围,只有2%的人幸运。这是分类失衡的完美案例。

在现实生活中,这种情况还会增加吗?是!为了更好地理解,这里有一些真实的例子。请注意,不平衡的程度因情况而异:

用于检测从生产线下线的产品的自动检查机可能会发现有缺陷的产品数量明显少于无缺陷的产品。
为检测选定地区居民中的癌症而进行的一项测试可能发现,受癌症影响的人数明显少于未受影响的人数。
在信用卡欺诈检测中,欺诈性交易将比合法交易低得多。

现实生活中还有许多其他情况会导致数据集不平衡。现在您看到,获得不平衡数据的机会非常高。因此,重要的是要学会为每个分析师解决此类问题。

为什么标准ML算法在不平衡数据上难以保证准确性?

这是一个有趣的实验。尝试一下!这样,您将了解学习重组不平衡数据的方法的重要性。我在下面的实用部分中对此进行了展示。

以下是导致不平衡数据集上的ML算法准确性降低的原因:

机器学习算法由于因变量的不均等分布而难以保证准确性。
这导致现有分类器的性能偏向多数类。
这些算法是由精度驱动的,即,其目的是最小化少数群体贡献很小的总体误差。
ML算法假定数据集具有平衡的类分布。
他们还假设从不同类别获得的错误具有相同的成本(下面详细说明)。

处理不平衡数据集的方法有哪些?

这些方法被广泛称为“采样方法”。通常,这些方法旨在使用某种机制将不平衡数据修改为平衡分布。通过更改原始数据集的大小并提供相同比例的余额来进行修改。

在许多研究证明平衡的数据与不平衡的数据集相比,改进的整体分类性能之后,这些方法变得越来越重要。因此,学习它们很重要。

以下是用于处理不平衡数据集的方法:

欠采样
过采样
综合数据生成
成本敏感学习

让我们一一理解它们。

  1. 欠采样

此方法适用于多数类。它减少了多数类的观察次数,以使数据集平衡。当数据集很大时,最好使用此方法,减少训练样本的数量有助于缩短运行时间和存储麻烦。

欠采样方法有两种:随机和信息性。

随机欠采样方法从多数类中随机选择观测值,这些观测值将被消除直到数据集平衡为止。信息性欠采样遵循预先指定的选择标准,以从多数类中删除观察值。

在信息不足的采样中,已知EasyEnsemble和BalanceCascade算法可产生良好的结果。这些算法也易于理解和直接。

EasyEnsemble:首先,它从多数类中提取几个独立样本的子集(带有替换)。然后,它基于每个子集与少数类的组合来开发多个分类器。如您所见,它就像无监督的学习算法一样工作。

BalanceCascade:采用监督学习的方法,开发了分类器集合,并系统地选择要合并的多数类。

您是否发现欠采样方法有任何问题?显然,删除观察值可能会导致训练数据丢失与多数班有关的重要信息。

  1. 过采样

此方法适用于少数群体。它复制少数class的观察结果以平衡数据。这也称为up采样。与欠采样类似,此方法也可以分为两种类型:随机过采样和信息过采样。

随机过采样通过对少数民族类别进行随机过采样来平衡数据。信息性过度采样使用预先指定的标准,并综合生成少数类观察。

使用此方法的优点是不会导致信息丢失。使用这种方法的缺点是,由于过采样仅在原始数据集中添加了重复的观测值,因此最终会添加多种类型的多个观测值,从而导致过拟合。虽然,这样的数据集的训练精度会很高,但是对看不见的数据的精度会更差。

  1. 综合数据生成

简而言之,它不是复制和添加少数派的观察值,而是通过生成人工数据来克服不平衡现象。这也是一种过采样技术。

对于合成数据的生成,合成少数采样技术(SMOTE)是一种功能强大且广泛使用的方法。 SMOTE算法基于少数样本的特征空间(而非数据空间)相似性创建人工数据。我们也可以说,它会生成一组随机的少数族裔观察值,以将分类器学习偏向转向少数族裔。

为了生成人工数据,它使用自举和k最近邻。准确地说,它是这样工作的:

取考虑中的特征向量(样本)与其最近邻之间的差。
将该差乘以0到1之间的一个随机数
将其添加到正在考虑的特征向量中
这将导致沿着两个特定特征之间的线段选择随机点
R有一个很好定义的包,其中包含了此技术。我们将在下面的实用部分中进行介绍。

  1. 成本敏感学习(CSL)

这是处理不平衡数据分类问题的另一种常用方法。这是一种有趣的方法。简而言之,该方法评估与错误分类观察值相关的成本。

它不会创建平衡的数据分发。相反,它通过使用成本矩阵突出显示了学习不平衡的问题,成本矩阵描述了特定情况下错误分类的成本。最近的研究表明,对成本敏感的学习比抽样方法要好很多倍。因此,此方法可能提供了替代采样方法的方法。

让我们用一个有趣的例子来理解它:给定的乘客数据集。我们有兴趣知道一个人是否有炸弹。数据集包含所有必要的信息。携带炸弹的人被标记为正面class。而且,没有携带炸弹的人被标记为负面。问题在于确定一个人属于哪个类别。现在,了解成本矩阵。

将具有炸弹的人确定为阳性和没有阴性的人无需花费任何成本。对 ?但是,将具有炸弹的人识别为负面(假阴性)相关的成本要比将没有炸弹的人识别为正面(假阳性)更加危险。

成本矩阵类似于混淆矩阵。只是,我们在这里更加关注误报和误报(如下所示)。由于正确识别了“真肯定”和“真否定”,因此不会产生任何成本损失。

该方法的目标是选择总成本最低的分类器。

总cost= C(FN)xFN + C(FP)xFP

FN是错误预测的positive观察数
FP是错误预测的负面例子的数量

C(FN)和C(FP)分别对应与误报和误报相关的成本。请记住,C(FN)> C(FP)。
还有其他一些高级方法可以平衡不平衡的数据集。这些是基于群集的采样,自适应综合采样,边界线SMOTE,SMOTEboost,DataBoost – IM,基于内核的方法等等。这些算法的基本工作几乎如上所述。您可以尝试使用更直观的方法来改进预测:

  1. 使用聚类,将多数类划分为K个不同的聚类。这些集群之间的观察结果不应重叠。用少数群体的所有观察结果来训练每个集群。最后,平均您的最终预测。

  2. 收集更多数据。争取获得更多具有较高少数民族比例的数据。否则,添加更多数据将不会改善class失衡的比例。

样本不平衡,欠采样,过采样相关推荐

  1. 机器学习(四) 下采样和上采样

    查看数据样本 import pandas as pd import matplotlib.pyplot as plt import numpy as np%matplotlib inlinedata ...

  2. ML之FE:数据随机抽样之利用pandas的sample函数对超大样本的数据集进行随机采样,并另存为csv文件

    ML之FE:数据随机抽样之利用pandas的sample函数对超大样本的数据集进行随机采样,并另存为csv文件 目录 数据随机抽样之利用pandas的sample函数对超大样本的数据集进行随机采样,并 ...

  3. 样本不平衡不均衡数据处理

    20220302 对连续性的不平衡也可以参照分类型数据的不平衡处理方法?划分为多个集合求平均值? 20220125 # 数据划分negtive_rows = negtive_data.shape[0] ...

  4. 机器学习中样本不平衡处理办法

    在机器学习任务中,我们经常会遇到这种困扰:数据不平衡问题. 数据不平衡问题主要存在于有监督机器学习任务中.当遇到不平衡数据时,以总体分类准确率为学习目标的传统分类算法会过多地关注多数类,从而使得少数类 ...

  5. 解决样本不平衡问题的奇技淫巧 汇总

    先举一个"恐怖"的例子,直观的感受一下样本不平衡问题: 你根据1000个正样本和1000个负样本正确训练出了一个准确率90%召回率90%的分类器,且通过实验验证没有欠采样过采样的问 ...

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

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

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

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

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

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

  9. 系统学习机器学习之总结(二)--样本不平衡问题处理

    原文链接:http://blog.csdn.net/heyongluoyao8/article/details/49408131 解决这一问题的基本思路是让正负样本在训练过程中拥有相同的话语权,比如利 ...

  10. NLP中的样本不平衡、长句问题

    遇到的问题 这次关系抽取任务,在数据方面,遇到了两个问题. 样本类别不平衡 样本句子长度差距过大 关系最多实体对有4W多个,最少的只有十几条. 句子长度从短句(个位数长度)到300不等. 从验证集分析 ...

最新文章

  1. 身份证号码对应地区-官方措辞:行政区划代码
  2. Java开发面试题及答案,5年crud“经验
  3. 基于 Flink 的典型 ETL 场景实现
  4. 拼多多联合五菱宏光等推出“买车包油”活动 规定时间下单可获首年油费补贴...
  5. php class variable,PHP中的變量類擴展 - 是否可能?
  6. python怎么读xlsx_使用Python读取xlsx文件
  7. 方格网提取高程点lisp_基于VBA的道路横断面高程点提取方法研究
  8. 扒一扒最近很火的被马云强东联手封杀性感女黑帽
  9. SEO文章优化,内容SEO优化,SEO文章内容优化
  10. Nova的安装及其配置
  11. 从幻想到现实,虚拟人的成长之路
  12. 什么是机器人的外部轴?
  13. Python 和 Elasticsearch 构建简易搜索
  14. _findnext()报错写入位置 0x000000000BE2A940 时发生访问冲突。
  15. 美术改画系列-张聪-专题视频课程
  16. 【LoVissy学习笔记】用Python3.82自动发送邮件。QQ邮箱
  17. 怀旧动画之《嘿!奔奔》
  18. 数字通信和数据通信有何不同
  19. 电机轴承故障相关的开源数据(不断更新中)
  20. java怎么导入到安卓手机,android导入excel表格数据-随手记记账记录如何导出到EXCEL(安卓版)...

热门文章

  1. 智慧农业:农业物联网实施方案
  2. HTML5-单、多选框,按钮
  3. 数据治理标准体系框架
  4. jsmind 线条_jsMind思维导图模式展示数据
  5. 微信小程序登陆流程详详详解 看这一篇就够了
  6. spring bean作用域之间有什么区别
  7. 用HTML+css制作一个简单的三级导航
  8. 服务器vga连接显示器不亮,HDMI转VGA显示器不亮怎么办?HDMI转VGA显示器没反应如何处理?...
  9. 某新闻App sign签名算法解析(一)
  10. 性能测试--网页fps测试