数据集分类不平衡的影响与处理
文章目录
- 1. 分类预测建模
- 2. 不平衡分类
- 3. 分类失衡的原因
- 4. 分类失衡的挑战
- 5. 分类失衡的例子
- 6.解决方法
- 7. 混淆矩阵,精度,召回率和F1分数
不平衡分类对预测建模提出了挑战,因为用于分类的大多数机器学习算法都是围绕每个类别的样本数量均相等的假设来设计的。这导致模型的预测性能较差,特别是针对样本较少类别的预测。这是构建数据集需要考虑的一个问题,通常数量较少的类别更重要,因为与数量较多的类别来说,模型对样本较少的分类错误更为敏感。
1. 分类预测建模
分类问题是预测建模问题,涉及为每个观察值分配一个类别标签。分类模型会生成预测的类别,输出是离散的值。对于大多数实际应用,模型会通过softmax函数输出每一个类别的概率,然后选取置信度(概率)最大的类别输出。
当描述问题时,预测建模问题的类别数通常是固定的,并且类别数通常不会改变。与回归模型一样,分类模型会产生连续值的预测,该预测通常以概率的形式出现(即,任何单个样本的类成员的预测值在0到1之间,且总和为1)。
在处理分类预测建模问题时,必须收集训练数据集。分类问题中的数据由样本和标签组成。训练数据集是来自领域的许多示例,包括输入数据(例如,测量值)和输出数据(例如,类别标签)。训练数据集用于更好地理解输入数据,以帮助最佳地进行建模准备。它还用于评估一组不同的建模算法。它用于调整所选模型的超参数。最后,训练数据集用于在所有可用数据上训练最终模型,可以使用这些模型对新的数据进行预测。
2. 不平衡分类
属于每个类别的示例的数量称为类别分布。不平衡分类是指分类预测建模问题,其中训练数据集中每个类标签的示例数不平衡。也就是说,数据集中,每类样本的数量不相等。当一个或多个类别在训练数据中所占的比例低于其它类别时,就会出现不平衡。
描述数据集中类的不平衡的另一种方法是将类分布总结为训练数据集的百分比。例如,不平衡的多类分类问题可能在第一类中有80%的示例,在第二类中有18%的示例,在第三类中有2%的示例。
3. 分类失衡的原因
不平衡的分类预测建模问题中类分布的不平衡可能有很多原因。导致失衡的两个主要原因,分别是数据采样和属性。跨类别的示例中的不平衡可能是由于从问题域中收集或采样示例的方式引起的。这可能涉及在数据收集过程中引入的偏差,以及在数据收集过程中发生的错误。比如偏差采样和测量误差。
例如,示例可能是从狭窄的地理区域或某个时间段收集的,而类别的分布可能完全不同,甚至可能以不同的方式收集。
收集观测值时可能会出错。一种错误类型可能是将错误的类标签应用于许多示例。或者,从中收集示例的过程或系统可能已损坏或受损,从而导致不平衡。
通常,在不平衡是由采样偏差或测量误差引起的情况下,可以通过改进的采样方法或校正测量误差来校正不平衡。这是因为训练数据集不能正确的表示要解决的问题域。
4. 分类失衡的挑战
分类不平衡因问题而异。分类问题可能存在轻微的不平衡或者会存在严重的失衡,比如其中一个类中可能有数百或数千个示例,而另一类中可能有数十个示例。
轻微失衡:一个不平衡的分类问题,其中样本的分布在训练数据集中很少(例如4:6)。
严重失衡:在训练数据集中大量的示例分布不均匀的不平衡分类问题(例如1:100或更多)。
现在大多数分类失衡的数据集都集中在1:4至1:100的失衡比率上。在欺诈检测或化学信息学等现实应用中,可能会处理不平衡率从1:1000到1:5000的问题。轻微的不平衡通常不是问题,并且可以像正常分类预测建模问题一样对待。严重不平衡可能很难建模,需要使用专门的技术。
具有大量示例的一个或多个类称为主要或多数类,而具有少量示例(通常只有一个)的类称为次要或少数类。当处理分类不平衡问题时,通常最关注样本数较少的类别。这意味着模型正确预测少数样本的类别标签的能力比多数样本更为重要。
少数派类别很难预测,因为按照定义,此类类别的例子很少。这意味着模型要学习此类中的示例的特征,并将此类中的示例与多数类(或多个类)区分开来更具挑战性。
针对分类预测模型的大多数机器学习算法都是在假设类均等分布的问题上进行设计和演示的。这意味着模型可能只专注于学习大量观测的特征,而忽略了少数类别中实际上更受关注且其预测更有价值的示例。大多数分类算法的学习过程通常偏向多数类示例,因此少数类算法无法很好地建模到最终系统中。
尽管在过去的二十年中,人们在学习失衡方面做了大量工作,但现有方法和问题仍有许多缺点有待解决。
5. 分类失衡的例子
下面列出了该问题领域的十个示例,其中示例的类分布固有地不平衡。
- 欺诈识别。
- 索赔预测
- 默认预测。
- 流失预测。
- 垃圾邮件检测。
异常检测。 - 离群值检测。
- 入侵检测
- 转换预测。
实例列表阐明了不平衡分类预测建模的性质。
这些问题领域中的每一个都代表了整个研究领域,每个领域中的特定问题都可以作为不平衡的分类预测建模加以构架和探索。这凸显了类不平衡分类的多学科性质,以及为什么对于机器学习从业者来说,意识到这一问题并熟练地解决这一问题如此重要。
6.解决方法
算法方法:机器学习算法对假阳性和假阴性的惩罚相同。一种应对方法是修改算法本身,以提高少数群体类别的预测性能。这可以通过基于识别的学习或成本敏感的学习来执行。 Drummond & Holte (2003); Elkan (2001); Manevitz & Yousef (2001)
数据方法:包括对数据进行重新采样以减轻类不平衡导致的影响。数据方法更灵活并允许使用最新算法,因此已在实践中广为接受。两种最常见的技术是过采样和欠采样。
过采样,会增加训练集中少数群体成员的数量。过采样的优点是不会保留原始训练集中的信息,因为会保留少数和多数类别的所有观察结果。另一方面,它容易过度拟合。
欠采样,与过采样相反,旨在减少多数样本的数量来平衡类分布。由于它正在从原始数据集中删除观察结果,因此可能会丢弃有用的信息。
之前一篇文章中介绍了设置class_weight实现类别的平衡的方法。此外还常使用过采样和欠采样方法。常用的方法有:EditedNearestNeighbours欠采样技术(E2_ENN)
NearMiss 3 欠采样技术(E3_NM)
SMOTE过采样技术(E4_SMT)
ADASYN过采样技术(E5_ADS)
EditedNearestNeighbours & “Balanced” class_weight (E6_ENN)
NearMiss 3 & “Balanced” class_weight (E7_NM)
SMOTE & “Balanced” class_weight (E8_SMT)
ADASYN & “Balanced” class_weight (E9_ADS)
7. 混淆矩阵,精度,召回率和F1分数
一类的F1分数为精度(查准率,precision)和查全率(召回率,recall)的调和平均值(2×精度×查全率/(精度+查全率))
**对于给定的类,召回率和精度的不同组合具有以下含义:
- 高召回率+高精度:模型可以完美地处理类
- 召回率低+精度高:该模型无法很好地检测到类别,但在进行分类时是高度可信赖的
- 召回率高+精度低:可以很好地检测类别,但是模型中也包含其他类别的点
- 召回率低+精度低:模型处理不佳**
https://link.springer.com/article/10.1007/s13748-016-0094-0
https://medium.com/james-blogs/handling-imbalanced-data-in-classification-problems-7de598c1059f
https://machinelearningmastery.com/what-is-imbalanced-classification/
https://towardsdatascience.com/handling-imbalanced-datasets-in-machine-learning-7a0e84220f28
数据集分类不平衡的影响与处理相关推荐
- 数据安全分类分级实施指南_不平衡数据集分类指南
数据安全分类分级实施指南 重点 (Top highlight) Balance within the imbalance to balance what's imbalanced - Amadou J ...
- 基于集成学习的不平衡数据集分类问题研究--文献阅读
参考文献 基于集成学习的不平衡数据集分类问题研究 - 中国知网https://kns.cnki.net/kcms/detail/detail.aspx?dbcode=CMFD&dbname=C ...
- msra数据集_ACL2020 | 香侬科技提出使用Dice Loss缓解数据集数据不平衡问题
论文标题:Dice Loss for Data-imbalanced NLP Tasks 论文作者:Xiaofei Sun, Xiaoya Li, Yuxian Meng, Junjun Liang, ...
- dice系数 交叉熵_ACL2020 | 香侬科技提出用Dice Loss缓解数据集数据不平衡问题
论文标题: Dice Loss for Data-imbalanced NLP Tasks 论文作者: Xiaofei Sun*, Xiaoya Li*, Yuxian Meng, Junjun Li ...
- ACL 2020 | 香侬科技提出用Dice Loss缓解数据集数据不平衡问题
论文标题: Dice Loss for Data-imbalanced NLP Tasks 论文作者: Xiaofei Sun*, Xiaoya Li*, Yuxian Meng, Junjun Li ...
- KNN算法实现鸢尾花数据集分类
KNN算法实现鸢尾花数据集分类 作者介绍 数据集介绍 KNN算法介绍 用KNN实现鸢尾花分类 作者介绍 乔冠华,女,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组. 研究方向:机 ...
- caffe学习笔记18-image1000test200数据集分类与检索完整过程
image1000test200数据集分类与检索完整过程: 1.准备数据:数据集图片分10个类,每个类有100个train图片(train文件夹下,一共1000),20个test图片(val文件夹下, ...
- Python实现鸢尾花数据集分类问题——基于skearn的SVM(有详细注释的)
Python实现鸢尾花数据集分类问题--基于skearn的SVM 代码如下: 1 # !/usr/bin/env python2 # encoding: utf-83 __author__ = 'Xi ...
- 不同参数对分类模型性能影响记录
影响模型的性能参数,主要有 1)卷积核的大小和步长 2)学习率的大小和策略 3)最优方法 4)正则化因子 5)网络深度 测试网络MobileNet, ALLconv6.测试数据集CHIM-10K,Pl ...
最新文章
- matlab入门笔记3
- python Windows和Linux路径表示问题
- 精通python能干嘛-很多人说精通Python?对于精通我们存在哪些误区
- 打开word或者office程序报错:Microsoft Visual C++ Runtime Library. Runtime Error!
- 基于 Kotlin 一行代码实现 android 导航栏 BottomBar
- 5.5 function
- ARMv9刷屏 —— 号称十年最大变革,Realm机密计算技术有什么亮点?
- 扔掉目标检测器,实现真正的端到端多模态预训练!阿里提出E2E-VLP(ACL2021)...
- Linux下开启关闭查看软件包信息
- 语言中出现蘌ress_语言障碍、语言异常及语言发育迟缓的异同
- 并发编程学习之原子变量类
- python notebook 在加载ipynb文件 报错NotJSONError(‘Notebook does not appear to be JSON: \‘\\ufeff{“nbformat“
- msfconsole php,msfconsole从入门到放弃
- 【天光学术】美术论文:湖南传统雕刻艺术的表现形式与特点(节选)
- 小米 win10 android 双系统,PC平板二合一 运行win10/安卓双系统
- DNS分类与区别-权威DNS、递归DNS、转发DNS
- 赤城新千禧计算机学校,今天,千禧宝宝如约而至
- 产品不良率计算公式--如PPM,DPPM,DPMO等
- Word2003入门动画教程27:将Word文档打印成小册子
- C-CF29A Spit Problem
热门文章
- 头条2019.3.16笔试题
- 什么是迁移学习 (Transfer Learning)?
- 【CSDN】【自用】CSDN操作
- Ubuntu 20.04添加临时/永久路由
- L298N双路驱动直流电机方案(支持PWM+正反转)
- 八种基本数据类型(一)
- chrome无痕模式可访问但正常模式访问不了
- Android工作经验6年,Android事件分发机制收藏这一篇就够了,分享PDF高清版
- python高斯噪声怎么去除_Python图像处理之Pillow--ImageFilter介绍
- 集线器、交换机、路由器有什么区别?