机器学习中的类别不均衡问题

如何处理深度学习中的样本不平衡问题? 记住要根据具体问题和数据特点选择合适的方法,相信你会解决样本不平衡问题,让模型在不同类别上表现公正且优异!加油,你们是最棒的!今天我们要探讨的是深度学习中的“公平守护者”——处理样本不平衡问题的方法。样本不平衡指的是在数据集中,不同类别的样本数量差别很大。权重平衡法(Class Weighting):设置每个类别的权重,让模型在训练时更关注少数类别。通过将多个模型的预测结果结合起来,可以提高模型的性能,并减轻样本不平衡问题的影响。GAN是一种强大的生成模型,可以通过生成新的样本来增加少数类别的数据量。 阅读详情

基础概念

类别不均衡是指在分类学习算法中,不同类别样本的比例相差悬殊,它会对算法的学习过程造成重大的干扰。比如在一个二分类的问题上,有1000个样本,其中5个正样本,995个负样本,在这种情况下,算法只需将所有的样本预测为负样本,那么它的精度也可以达到99.5%,虽然结果的精度很高,但它依然没有价值,因为这样的学习算法不能预测出正样本。这里我们可以知道不均衡问题会导致样本较少那一类的高错分率,即较少一类的样本会有较大的比例会被预测成样本数量较多的那一类。

 

解决方法

1、欠采样,减少数量较多那一类样本的数量,使得正负样本比例均衡。
2、过采样,增加数量较少那一类样本的数量,使得正负样本比例均衡。
3、不处理样本,样本分类阈值移动。

 

欠采样

 

随机欠采样

随机欠采样是指随机从多数类样本中抽取一部分数据进行删除,随机欠采样有一个很大的缺点是未考虑样本的分布情况,而采样过程又具有很大的随机性,可能会误删多数类样本中一些重要的信息。

 

EasyEnsemble 和 BalanceCascade

EasyEnsemble是通过多次从多数类样本有放回的随机抽取一部分样本生成多个子数据集,将每个子集与少数类数据联合起来进行训练生成多个模型,然后集合多个模型的结果进行判断。这种方法看起来和随机森林的原理很相似。

BalanceCascade是通过一次随机欠采样产生训练集,训练一个分类器,对于那些分类正确的多数类样本不放回,然后对这个剩下的多数类样本再次进行欠采样产生第二个训练集,训练第二个分类器,同样把分类正确的样本不放回,以此类推,直到满足某个停止条件,最终的模型也是多个分类器的组合。

 

基于knn欠采样

有四种 KNN 欠抽样方法:

  • NearMiss-1 :选择到最近的三个少数类样本平均距离最小的那些多数类样本
  • NearMiss-2 :选择到最远的三个少数类样本平均距离最小的那些多数类样本
  • NearMiss-3 :为每个少数类样本选择给定数目的最近多数类样本,目的是保证每个少数类样本都被一些多数类样本包围
  • 最远距离 :选择到最近的三个少数类样本平均距离最大的那些多数类样本

 

过采样

 

随机过采样

随机欠采样是指多次随机从少数类样本中有放回的抽取数据,采样数量大于原有的少数类样本数量,其中有一部分数据会出现重复,而重复数据的出现会增大方差造成模型的过拟合。

 

SMOTE算法

SMOTE全称是Synthetic Minority Oversampling Technique即合成少数类过采样技术,它是基于随机过采样算法的一种改进方案,SMOTE算法的基本思想是对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中。

SMOTE 算法是利用特征空间中现存少数类样本之间的相似性来建立人工数据的,也可以认为SMOTE算法假设了在相距较近的少数类样本之间的样本仍然是少数类,
具体过程如下:

  • 随机选择一个少数类样本,计算它到少数类样本集中所有样本的距离,得到它k近邻。
  • 根据样本不平衡比例设置一个采样比例以确定采样倍率n,对于每一个少数类样本x,从其k近邻中随机选择若干个样本
  • 对于每一个随机选出的近邻,选择一个在[0,1]之间的随机数乘以随机近邻和x的特征向量的差,然后加上一个x,
    用公式表示:

SMOTE算法摒弃了随机过采样复制样本的做法,可以防止随机过采样易过拟合的问题,而这些多出来的样本本身不带有信息,而且SMOTE 算法对于每个原少数类样本产生相同数量的合成数据样本,这就使得类间发生重复的可能性加大。

 

Borderline-SMOTE算法

Borderline-SMOTE算法较SMOTE算法提升的地方是只为那些K近邻中有一半以上多数类样本的少数类样本生成新样本,因为这些样本容易被错分,而在这些少数类样本附近生存人工合成样本,有助于少数类样本的分类正确。而如果少数类样本周围全是多数类样本,这种情况下,这个样本会被认定为噪声样本。

Borderline-SMOTE算法筛选样本的公式如下:

它的选择过程如下:

  • 对于每个 xi⊂Smin 确定一系列最近邻样本集,称该数据集为 Si:k−nn,且 Si:k−nn⊂S
  • 对每个样本 xi ,判断出最近邻样本集中属于多数类样本的个数,即:|Si:k−nn⋂Smaj|
  • 选择满足上面不等式的 xi

 

基于k-means过采样

基于k-means聚类过采样方法一般分为两步:

  • 首先分别对正负例进行K-means聚类
  • 聚类之后,对其中较小的簇进行上面的过采样方法扩充样本数量
  • 然后在进行正负类样本均衡扩充

该算法不仅可以解决类间不平衡问题,而且还能解决类内部不平衡问题。

 

分类阈值移动

通常在一个二分类的问题中,我们经常将0.5作为预测结果的分类标准,比如将预测概率大于0.5分为A类,预测概率小于0.5分为B类,这里的0.5就是分类阈值。

在二分类问题中,假如预测一个样本为A的概率为p,那么它为B的概率为1-p,而p/(1-p)表示两类可能性的比,即几率(odds),或称为优势比。如果p/(1-p)>1,我们认为该样本是A类的几率大于B。然而,在一个数据集中正负样本比例不相同时,此时会有一个观测几率,假设在数据集中有m个A样本,n个B样本,那么观测几率为m/n(样本均衡的情况下观测几率为1)。

在算法分类过程中,如果预测几率p/(1-p)大于实际的观测几率m/n,此时我们才把样本分类为A,而不是以0.5作为分类阈值(样本均衡情况下以0.5作为阈值)
用公式表示:p/(1-p)>m/n
计算结果得到p>m/(m+n)
此时只有当p大于m/(m+n)时,预测结果为A类,这里m/(m+n) 取代0.5成为新的分类阈值。

借助以上的原理,在分类学习中面对样本不均衡时,我们可以采用原有不均衡的样本进行学习,然后通过改变决策规则来做分类,比如在样本均衡时我们0.5作为分类阈值,而在样本不均衡的情况下我们可以规定预测概率需要达到0.8才能被预测为多数类。

 

机器学习 - 如何解决不均衡样本的分类问题 文本翻译(和精简)自 Upasana 小姐姐的文章 Imbalanced Data: How to handle Imbalanced Classification Problems 原文链接: https://www.analyticsvidhya.com/blog/2017/03/imbalanced-data-classification/ 1. 简介 类别不均衡问题在机器学习和数据科学上十分常见。在类别不均衡时,属于一个类别的样本数量显着低于属于其他类别的样本数量。 例如,在异常检测问题 – 如 阅读详情

相关推荐

如何处理深度学习中的不平衡数据集和噪声数据?

嗨,深度学习探险家们!在深度学习中,不平衡数据集和噪声数据是我们常常会遇到的挑战。它们可能导致模型性能下降和训练不稳定。在本文中,我们将探讨如何处理深度学习中的不平衡数据集与噪声数据,打造鲁棒高效的模型。第一步:处理不平衡数据集不平衡数据集指的是不同类别的样本数量差别很大。处理不平衡数据集的方法包括:重采样技术:通过过采样少数类别样本或欠采样多数类别样本,平衡数据集中不同类别的样本数量。类别权重调整:为不同类别设置不同的权重,让模型在训练过程中更关注少数类别。

huidhsu的博客 1283

样本不平衡问题总结

一、样本不平衡介绍 1. 样本不平衡现象: 训练数据中各种类别样本数量差别过大,导致训练的模型对各个类别预测或分类的精度偏差比较大,比如电池故障预测,故障的数据量远远少于正常数据量,但是这些故障数据反而更重要。 2. 样本不平衡影响: 训练样本不平衡,那么模型更容易偏向样本量多的类别,因为模型把样本量的大的类别预测对,整体精度也会高,就不会在意少量样本类别,但这是不对的。即模型会学习到按照样本类别比例的先验信息,而解决样本不平衡能解决学习到这种先验信息,能从本质正确的判断预测不同类别。 举个栗子: 比如模型

weixin_39263657的博客 6166

机器学习中数据不均衡问题(分类类别数据不均匀)

在机器学习中,我们经常会遇到类别数据分布不均衡问题,即某类中含有很多数据,而其他类别中的数据量很少。在这种情况下, 使用传统机器学习算法开发的预测模型可能存在偏差和不准确,造成上述的原因是,传统算法模型通过减少loss来提高准确性,他们并没有考虑到类别的分类不均问题。因此机器学习算法在面对不平衡的数据集时, 往往会产生不理想的分类器。 标准分类器算法 (如决策树和逻辑回归) 倾向于只预测多数类数...

myc的博客 1万+

[ML] 解决样本类别分布不均衡的问题

[ML] 解决样本类别分布不均衡的问题

dearbaba_11的博客 131

【机器学习】详解 使用 imblearn 应对类别不均衡

使用 imblearn 应对类别不均衡

闻韶 4949

Python爬虫实战:西瓜视频m3u8解析与FFmpeg下载合并

网络爬虫与流媒体解析是Python工程实践中的常见需求,其核心在于通过HTTP请求获取数据并解析特定格式。m3u8作为HLS协议索引文件,将视频切分为ts分片,便于流式传输。结合FFmpeg的多线程处理能力,可高效完成分片下载与合并,技术价值在于提升视频处理效率。典型应用场景包括视频下载、离线缓存等。本文以西瓜视频为例,详细讲解如何使用requests库提取m3u8地址,并调用FFmpeg批量下载ts分片合并为mp4,涵盖请求伪装、索引解析及常见问题排查。

weixin_31856057的博客 15万+

Spark ML处理样本类别不均衡问题

样本类别分布不均衡导致的危害? 样本类别不均衡将导致样本量少的分类所包含的特征过少,并很难从中提取规律; 即使得到分类模型,也容易产生过度依赖与有限的数据样本而导致过拟合问题,当模型应用到新的数据上时,模型的准确性会很差 解决类别不平衡数据 1 过采样代表性算法-SMOTE 1.1 算法思想 为了解决随机过采样中造成模型过拟合问题,⼜能保证实现数据集均衡的⽬的,出现了过采样法代表性的算法SMOTE 算法。 SMOTE算法是对随机过采样⽅法的⼀个改进算法,由于随机过采样⽅法是直接对少数类进⾏重采⽤,会使

架构师老狼 1597

Windows 11安装realtek audio control

Windows 11安装realtek audio control,解决无法链接RPC问题

m0_46144825的博客 8万+

python样本不均衡_[ML] 解决样本类别分布不均衡的问题

3.4 解决样本类别分布不均衡的问题说明:本文是《Python数据分析与数据化运营》中的“3.4 解决样本类别分布不均衡的问题”。-----------------------------下面是正文内容--------------------------所谓的不平衡指的是不同类别的样本量异非常大。样本类别分布不平衡主要出现在分类相关的建模问题上。样本类别分布不均衡从数据规模上可以分为大数据分布不均...

weixin_39555579的博客 1188

Pywinauto与Inspect.exe完美搭配:解决Windows应用UI自动化中的元素定位难题

本文详细介绍了如何将Pywinauto与Inspect.exe结合,以解决Windows应用UI自动化中的核心难题——元素定位。通过实战指南,阐述了如何利用Inspect.exe在UIA模式下精准侦察控件属性,并将这些信息转化为Pywinauto的稳健定位策略,从而高效自动化WPF、WinForms等现代框架构建的复杂桌面应用。

weixin_29297127的博客 520

SystemVue 链路预算、仿真分析步骤

使用SystemVue进行链路预算、频谱分析等,相对ADS更全面。

BeCourageable的博客 3835

机器学习分类问题中_训练数据类别不均衡怎么解决

机器学习分类问题中_训练数据类别不均衡怎么解决

weixin_45866907的博客 375

通俗易懂的图解二叉搜索树、AVL树和红黑树

搜索是一种很常见的需求,当数据较多时,如何找到目标对象时,即需要搜索查找。 那么如何快速找到目标呢,最朴素的思想就是暴力查找,一个一个对比。 显然,当数据量增大时,我们需要优化查找方法获取更快的查找速度,我们可以通过维护一个有序数组,从而实现二分查找,查找速度从O(n)降为O(longn)。 但是数组并不便于插入和删除,链表便成为了最好的选择。 既然是采用二分查找,那么不如直接按照查找的步骤维护一种数据结构,于是二叉搜索树出现了。 二叉搜索树的性质为: 若左子树不为空,则左子树上所有节点值都小于根结点值;

暗色光的博客 758

机器学习的样本类别不均衡问题与解决方法

1、类别不平衡问题的定义: 类别不平衡(class-imbalance)就是指分类任务中,不同类别的训练数据数目差别很大的情况。 2、类别不平衡问题的影响: 假设训练样例中正例数目m+,负例数目m-,那么观测几率为 m+/m- 。 设一个样本预测为正例的概率为p,则预测为负例的概率为1-p,则分类器的预测几率为p/1-p。 通常情况下,我们假设训练集是真实样本总体的无偏采样,那么当预测几...

江户香葱饼的博客 1476

Prism 入门02,区域介绍

什么是区域(Region)?区域,在Prism 框架中,区域是模块化的核心的功能之一,其主要作用是降低应用程序和模块之间的耦合度。使用方式:在应用程序的界面中,划分出某块区域,并为这个区域定义一个唯一的区域名称。那么通过这个区域名称,应用程序就可以找到指定的区域。并为这个区域动态放置一些容器或控件,从而呈现在界面中。

build2024 1126

以太网_RGMII接口与GMII接口的转化_03

RGMII接口转GMII接口!

weixin_42499230的博客 378

【机器学习与深度学习理论要点】10.什么是置信概率、什么是交叉验证、解决类别不均衡问题?

1)什么是置信概率? 置信概率是用来衡量推断结果的概率,该值越大说明推断结果确定性越大,该值越小说明推断结果不确定性越大。 2)什么是交叉验证 交叉验证指将含有N个样本的数据集,分成K份,每份N/K个样本。选择其中1份作为测试集,另外K-1份作为训练集,测试集就有K种情况。将K种情况下,模型的泛化误差取均值,得到模型最终的泛华误差。 交叉验证的作用是为了得到更为稳健可靠的模型,对模型的泛化误差进行评估。 ...

yegeli的博客 1721

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

如何解决机器学习里面的类别不平衡问题

转载自:https://zhuanlan.zhihu.com/p/78508502 总结下机器学习中类别不均衡的处理方法主要有下,希望对你有帮助~~ 采样 这里的采样可以分为上采样和下采样,简单说就是从类别少的多采样或者类别多的少采样。对于上采样,如SMOTE算法。 转化为One-class问题 把它看做一分类(One Class Learning)或异常检测(Novelty Detec...

qinglv1的博客 493

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

类别不均衡问题

问题背景 机器学习建模分类问题里,各个类别样本量差异较大时,就会出现类别不均衡问题。e.g.如果有99999个无症状病例,1个有症状病例,即使训练的学习器将所有样本识别成无症状病例,准确率也高达99.9%;但是这样的学习器没有任何价值,无任何鉴别有症状病例的价值。 常用类别均衡方法 以下假设正例样本数远小于负例样本数: (1)欠采样 欠采样的代表做法是利用集成学习机制,将反例划分成若干个集合 供不同学习器使用。 (2)过采样 过采样不能简单地对正例样本进行重复采样,否则会导致严重的过拟合。过采样的代表性算法

公众号:瑞行AI 523

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

类别不均衡

类别不均衡问题就是不同类别的样本数差别很大,很容易理解,不再赘述。 这种情况会导致模型的误判,比如2分类,正例998,反例2,那么即使我们所有的样本都识别为正例,正确率高达99.8%,然而并没有什么卵用。 针对该问题本文汇总了几种解决方法 想办法搞到更多数据 换个模型评价方式 在类别均衡时,accuracy是比较能说明问题的,但是类别不均衡时,就会出现上文描述的问题,此时...

weixin_30706507的博客 235
上一篇: 机器学习算法一览,应用建议与解决思路 (实用!!!划重点!!!)
下一篇: [干货]如何从不均衡类中进行机器学习
Candy_GL
博客等级 码龄12年 103粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值