理解机器学习中的类别不平衡问题

大家好,实际世界的数据集通常是杂乱的,当不同类别之间的样本分布不均匀时,就会出现类别不平衡。或者说,某些类别的样本比其他类别多得多。例如,考虑一个信用卡违约数据集,信用卡违约是一个相对较少发生的事件,而没有违约的情况则占据了绝大多数。这种不平衡可能会对模型的训练和性能产生影响。

在这样的情况下,模型可能会更倾向于学习如何正确地分类没有违约的情况,而对于违约的情况可能学到的信息相对较少。这可能导致在实际应用中,模型对于违约的情况预测效果不佳,因为它没有足够的样本来学习如何准确地识别这个相对较少发生的类别。

在处理类别不平衡的问题时,通常需要采取一些技术手段,如过采样、欠采样、使用不同的损失函数或集成学习方法,以帮助模型更好地处理少数类别的样本。

一、为模型训练和评估选择正确指标 

准确率指标

准确率是机器学习模型训练和评估中常用的指标。然而在不平衡的数据集上,高准确率可能是一个误导性的指标,因为模型可以通过大多数时间预测多数类别来获得高准确率分数。

以一个包含1000名信用卡用户数据的数据集为例。在这1000人中,只有50人违约,而950人没有。假设我们的模型只是简单地为每个人预测“不违约”,而没有真正学习数据集中的潜在模式。

通过混淆矩阵的计算,可以得到以下结果:

  • 真正例(TP)= 0

  • 真负例(TN)= 950

  • 假正例(FP)= 0

  • 假负例(FN)= 50

  • 准确率(Accuracy)=(TP + TN)/(TP + TN + FP + FN)=(0 + 950)/1,000 = 95%

尽管该模型实现了95%的准确率,听起来相当高,但实际上这个模型是完全无用的,因为它在完全未能检测到潜在违约的情况下取得了高准确率。

不平衡数据集的度量指标

在数据集存在类别不平衡的情况下,精确度、召回率和F1分数是更好的度量标准。

精确度(Precision):精确度( the Positive Predictive Value/ PPV)衡量了所有预测为正的观察值中正确预测的数量。

  • 精确度(Precision) = TP / (TP + FP) = 0 / (0 + 0)

使用上述混淆矩阵,精确度未定义,或者出于实际目的,可以视为0。

召回率(Recall):召回率(也称为敏感性或真正例率)是实际正例中正确预测的观察数量。

  • 召回率(Recall) = TP / (TP + FN) = 0 / (0 + 50) = 0

召回率为0%,这表明模型未检测到任何实际违约。

F1分数(F1-Score):F1分数是精确度和召回率的调和平均数。它是将精确度和召回率结合成一个单一指标的一种方式。

  • F1分数(F1-Score) = 2 × ((精确度 × 召回率) / (精确度 + 召回率))

对于我们的模型,F1分数未定义,因为精确度和召回率都为0。

ROC曲线

当将分类问题建模为回归问题时,模型对样本属于“正”标签的概率可以用来进行分类,其概率在某个阈值以上。ROC曲线是真正例率(TPR)或召回率相对于假正例率(FPR)或误报率在不同阈值设置下的图表。

图片

曲线从点(0,0)开始,并以点(1,1)结束。从点(0,0)到点(1,1)的对角线代表随机分类器的ROC曲线。ROC曲线越靠近左上角,分类器的性能就越好。

ROC曲线下面积(AUC-ROC)提供了模型区分正负类别能力的度量。完美的分类器的AUC为1。完全随机的分类器的AUC为0.5。

曲线的陡峭度表示性能:陡峭的曲线表示模型具有良好的召回率,逐渐增加表示更多的假阳性。

请注意,ROC曲线仅关注正类别,并且较差地反映了模型在负类别上的性能。因此,对于不平衡的数据集,通常认为精确度-召回率曲线(Precision-Recall (PR) curve)曲线比ROC曲线更好。

精确度-召回率曲线

这个曲线是精确度(正预测值/PPV)相对于召回率(敏感性或真正例率)的不同阈值的绘图。

图片

  • 在绘图的右上角,精确度和召回率都为1,表示一个完美的分类器。

  • 一个随机分类器的精确度等于正样本的比例。

  • 精确度-召回率曲线下面积越大(AUC-PR),模型越好。

  • 一个完美的分类器的AUC-PR为1,而一个随机分类器的AUC-PR等于正样本的比例。

二、处理类别不平衡

可以使用以下方法来解决类别不平衡:

  • 数据层方法:改变给定不平衡数据集的分布。

  • 算法层方法:使机器学习模型更能适应类别不平衡。

数据层方法

1.随机重采样(Random Resampling)

在这种方法中,从多数类别中随机删除样本(欠采样),并随机复制少数类别的样本(过采样)。

2.SMOTE 过采样(SMOTE Oversampling)

SMOTE(Synthetic Minority Over-sampling Technique)是一种用于增加数据集中少数类别样本的技术。其工作方式如下:

  • 对于少数类别中的每个样本,随机选择其k个最近邻居。

  • 计算该样本与其选择的邻居的特征向量之间的差异。

  • 将差异乘以0到1之间的随机数。

  • 将结果加到样本的特征向量中。这在特征空间中生成一个新点。重复此过程直到解决类别不平衡问题。

3.ADA-SYN 过采样(ADA-SYN Oversampling)

ADA-SYN(Adaptive Synthetic Sampling)是SMOTE的扩展,它根据模型在学习中的难度自适应地生成新样本。在少数类别被多数类别包围且较难学习的区域,生成更多合成数据。

ADA-SYN 过采样的工作方式如下:

  • 对于少数类别中的每个样本,随机选择其k个最近邻居。

  • 计算这些邻居的类别分布比例,以确定有多少属于多数类别。

  • 使用此比例计算每个少数类别样本的权重。具有更多多数类邻居的样本权重更高。

  • 对于每个少数类别样本,按其权重生成合成样本(使用 SMOTE 的步骤)。

4.Tomek Links 欠采样(Tomek Links Undersampling)

这是一种欠采样技术,选择多数类别和少数类别中彼此最近的样本。这些配对称为 Tomek Links。一旦找到 Tomek Link,就会删除该链接中多数类别的样本。

5.Edited Nearest Neighbors Rule 欠采样(Edited Nearest Neighbors Rule Undersampling)

对于数据集中的每个样本,识别其k个最近邻。如果样本来自多数类别,并且其大多数最近邻居属于少数类别,则删除该样本。

6.Neighbour Cleaning Rule 欠采样(Neighbour Cleaning Rule Undersampling)

这是一种欠采样技术,结合了 Edited Nearest Neighbors Rule 和 Tomek Links。上述过采样和欠采样方法可以以不同的方式组合,以解决适用于您用例的最佳方法。

算法层方法

1.成本敏感学习(Cost-sensitive Learning)

与所有类别使用相同成本不同,对不同类别分配不同的误分类成本。将少数类别(违约)误分类的成本高于误将多数类别(正常用户)样本误分类,这使得学习算法更加谨慎地对待误将少数类别误分类。

2.类平衡损失(Class Balanced Loss)

类平衡损失的思想是为不同的类别分配不同的权重,这个权重与该类别中的样本数量成反比。这意味着少数类别获得更高的权重,而多数类别获得更低的权重。在计算损失时,每个样本对损失的贡献都会按其类别权重进行缩放。这意味着误将少数类别样本误分类将导致比误将多数类别实例误分类更高的惩罚。

3.焦点损失(Focal Loss)

焦点损失的直觉是集中学习模型错误地预测的样本,而不是那些它可以自信地预测的样本。焦点损失在标准交叉熵准则中添加了因子 (1 − p) ** γ。这折扣了易学样本的损失贡献。

图片

4.集成技术(Ensembling Techniques)

这些技术背后的思想是多个模型的组合可以比任何单个模型更好地实现性能。在平衡随机森林中,每个决策树都在通过对多数类别进行欠采样创建的平衡数据子集上进行训练,最终预测是通过聚合所有树的预测得出的。在EasyEnsemble方法中,通过对原始数据集进行多次随机对多数类别进行欠采样,创建多个平衡子集。然后,在每个平衡子集上训练AdaBoost分类器,并通过聚合每个AdaBoost分类器的预测得出最终预测。其他流行的集成技术包括SMOTEBoost和RUSBoost。 

此外,在类别不平衡的实际数据中,模型可能偏向预测多数类别,导致高准确率却无效的情况。因此,精确度、召回率和F1分数成为更合适的评估指标。采用随机重采样、SMOTE过采样、ADA-SYN过采样等数据层方法,或成本敏感学习、类平衡损失、焦点损失等算法层方法,有助于处理类别不平衡。在选择性能指标时,精确度-召回率曲线比ROC曲线更适合,可提高对少数类别的敏感性。综合运用不同方法,可有效应对类别不平衡问题。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/11372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

速锐得深入解析吉利几何CAN总线数据通信网络的拓扑层级框架技术

在现代汽车工业中,车辆的电子控制单元(ECU)之间的通信至关重要。这种通信大多通过控制器局域网络(CAN)总线实现,它是德国BOSCH公司于20世纪80年代初开发的一种串行数据通信协议。随着技术的不断进步&#x…

读人工智能时代与人类未来笔记01_重塑人类社会秩序

1. AlphaZero 1.1. 2017年年底,由谷歌旗下DeepMind公司开发的人工智能程序AlphaZero击败了当时世界上最强大的国际象棋程序Stockfish 1.1.1. AlphaZero对Stockfish的百场战绩是28胜72平0负,可以说获得了压倒性的胜利 1.1.2. …

外贸网站优化为什么要布置内部链接?如何优化内链?

对于外贸人来说,外贸网站优化已然成为推广引流、获取询盘的重要的一环。而除了外部优化,内部链接,实际上也是提升SEO效果和用户体验的重要手段。为什么这么说呢?内部链接又该如何进行优化呢?接下来一起来看一看吧~ 什…

安卓手机数据恢复全攻略:从备份到专业软件一网打尽!

随着科技的飞速发展,我们的生活中越来越离不开手机。然而,在使用手机的过程中,我们可能会遇到数据丢失的问题。对于安卓手机用户来说,如何有效地恢复丢失的数据是一个值得探讨的问题。本文将为您介绍安卓手机数据恢复的全攻略&…

市政道路工程乙级资质的资质维护策略

人员配置与持续培训: 定期审查技术人员队伍,确保注册工程师及其他专业技术人员的数量、资质和专业分布满足乙级资质要求。实施持续的职业发展计划,包括内部培训、外部进修和专业认证,提升团队的技术水平和行业知识。 工程业绩记录…

java中简单工厂模式,工厂方法模式和抽象工厂模式的区别和联系?

在Java中,简单工厂模式、工厂方法模式和抽象工厂模式都是创建型设计模式,用于解耦对象的创建过程,提高系统的灵活性和可扩展性。它们之间既有相似之处也有明显的区别: 简单工厂模式(Simple Factory Pattern&#xff0…

【Git LFS】Git管理大文件

要在Git中有效地管理大文件,你可以使用Git Large File Storage (Git LFS)。Git LFS 是一个Git扩展,它能够更好地处理大文件的版本控制,而不会使仓库变得庞大和笨重。下面是如何设置和使用Git LFS的步骤: 1. 安装 Git LFS 首先&a…

西部首个全域直播基地,打造西部直播基地领军形象

天府锋巢直播产业基地作为西部直播产业的领军者,以其前瞻性的战略布局和卓越的服务体系,正加速推动全域直播的快速发展,助力直播产业实现新升级。该基地作为成都规模最大的直播基地,以加快全域直播为核心目标,通过促进…

利用香港多IP服务器优化网站访问速度的关键策略?

利用香港多IP服务器优化网站访问速度的关键策略? 随着数字化时代的不断发展,网站的全球访问速度成为企业吸引用户、提升竞争力的重要因素。特别对于跨国企业而言,如何确保全球用户都能享受到稳定快速的访问体验显得尤为重要。在这一背景下,…

生成ssl证书并配置到nginx

生成ssl证书并配置到nginx 安装证书生成工具 apt-get update apt install software-properties-common add-apt-repository ppa:certbot/certbot apt-get update apt-get install certbot python3-certbot-nginx生成证书 首先在新网上创建一个A链接,域名与服务器做…

考研OSchap4文件管理chap5磁盘管理(部分)

目录 一、整体认知 1.文件的定义 250 2.文件的属性 251 3.文件内部应该如何被组织(逻辑结构) 256 4.文件之间应该如何被组织起来(目录结构) 252 5.OS应该向上提供哪些功能 253 6.文件应该如何存放在外存中(物理结构) 258 7.OS如何管理外存中的空闲块(存储空间的管理) 25…

牛客Java面试题【面试】

牛客Java面试题【面试】 前言推荐牛客Java面试题【面试】第2章 Java笔面试高频考点&解题技巧1. Java基础[2.1 一、java-基础-1](https://www.nowcoder.com/study/live/689/2/1)1.1 为什么Java代码可以实现一次编写、到处运行?1.2 一个Java文件里可以有多个类吗&…

BMS-HiL主要功能

BMS HIL 系统中 PC 机中安装实验管理软件用于测试过程管理和测试序列编辑,通过以太网与 PXI 机箱中的处理器进行连接,处理器中运行实时系统(Real Time)并安装 Veristand 终端引擎,通过与 PC 中的数据传输,对…

catti三笔真题解读-英译汉(2012上)①

hello,大家好,欢迎来到英译汉早操练的环节。今天继续学习考试真题,在真题中发现问题,进步更大。内容较多,全文如下。分两篇输出,请参考十九、二十系列文章。 Back home in Gambia, Amadou Jallow was, at 22, a lover of reggae who had just finished colleg…

项目总结(后面应该怎做)

项目构思: 对于发布随机选人: 老师点击随机点人的时候,就要将这个时间记录并存进数据库,然后进入随机点人的界面,每按一次随机点人的时候就从数据库里面返回一个学生对象,并再随机点人的界面创建一个集合&…

有必要买超声波洗眼镜机吗?力荐四款实力超群超声波清洗机

在日常生活中,眼镜不仅仅是我们视野的延展,像太阳眼镜,也是有着独特的作用。但是,在每天的使用过程中,眼镜片表面难免会有灰尘,污迹,甚至油渍,这些都会对镜片的材质产生一定的损伤&a…

JavaSE多态

多态:一个对象在不同条件下表示的不同形态就叫多态。在程序中,多态是父类引用指定子类对象就叫多态。 多态是面向对象程序设计中的第三个特征 // 多态 class Father {String name;public void desc() {System.out.println("----------");Sys…

Lianwei 安全周报|2024.05.06

新的一周又开始了,以下是本周「Lianwei周报」,我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件,保证大家不错过本周的每一个重点! 政策/标准/指南最新动态 01 欧盟委员会发布《数据法》指南 欧盟委员会发布了《…

数据结构-树概念基础知识

根结点:非空树中无前驱节点的结点 结点度:结点拥有的子树数或子节点数或后继节点数 树的度:树内各结点的度的最大值 叶子:终端节点,度为0 祖先:从根到该节点所经分支上的所有结点 子孙:以某结点…

Springboot + xxlJob注意事项

1. 部署 就是这个地址: https://gitee.com/xuxueli0323/xxl-job 由于xxl-job的思想是 调度中心负责调度任务,然后有执行器负责接受调度的信息,然后根据调度,执行任务中的具体逻辑 将 xl-job-admin 启动起来,操作xl-job-admin这个文件夹下的配置文件即可: 创建数据库 执行sql…