类别不平衡Class-imbalance解决方法

news2024/11/14 5:26:22

类别不平衡是指分类任务中不同类别的训练样例数目差别很大的情况。

 

1、扩大数据集

2、欠采样

欠采样(under-sampling):对大类的数据样本进行采样来减少该类数据样本的个数,使其与其他类数目接近,然后再进行学习。

  • 随机欠采样方法:通过改变多数类样本比例以达到修改样本分布的目的,从而使样本分布较为均衡,但是这也存在一些问题。对于随机欠采样,由于采样的样本集合要少于原来的样本集合,因此会造成一些信息缺失,即将多数类样本删除有可能会导致分类器丢失有关多数类的重要信息。
  • 欠采样的代表算法是EasyEnsemble:利用集成学习机制,将大类划分为若干个集合供不同的学习器使用。这样对每个学习器来看都进行了欠采样,但在全局来看却不会丢失重要信息。

1)从多数类中有放回的随机采样n次,每次选取与少数类数目相近的样本个数。

2)将每一个多数类样本的子集与少数类样本合并并训练出一个模型,可以得到n个模型。

3)最终将这些模型组合形成一个集成学习系统,最终的模型结果是这n个模型的平均值。

  • BalanceCascade算法基于Adaboost,将Adaboost作为基分类器

1)在每一轮训练时都使用多数类与少数类数量相等的训练集,训练出一个Adaboost基分类器。

2)使用该分类器对全体多数类进行预测,通过控制分类阈值来控制假正例率(False Positive Rate),将所有判断正确的类删除。

3)最后,进入下一轮迭代中,继续降低多数类数量。

3、过采样

过采样(over-sampling ):对小类的数据样本进行采样来增加小类的数据样本个数。 

  • 随机过采样方法:需要对少数类样本进行复制来扩大数据集,造成模型训练复杂度加大。另一方面也容易造成模型的过拟合问题,因为随机过采样是简单的对初始样本进行复制采样,这就使得学习器学得的规则过于具体化,不利于学习器的泛化性能,造成过拟合问题。

过采样的代表算法是SMOTE和ADASYN

  • SMOTE:通过对训练集中的小类数据进行插值来产生额外的小类样本数据。产生新的少数类样本,产生的策略是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a、b之间的连线上随机选一点作为新合成的少数类样本。 
  • ADASYN:基本思想是根据学习难度的不同,对不同的少数类别的样本使用加权分布,比较容易学习的少数类样本,对于难以学习的少数类的样本,产生更多的综合数据。 因此,ADASYN方法通过两种方式改善了对数据分布的学习:(1)减少类不平衡引入的偏差,(2)将分类决策边界自适应地转移到困难的样本。

4、代价敏感学习(cost-sensitive learning)

采样算法数据层面解决不平衡数据的学习问题;在算法层面上解决不平衡数据学习的方法主要是基于代价敏感学习算法(Cost-Sensitive Learning),权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”(unequal cost)

代价敏感学习方法:

  • 1)从学习模型出发,对某一具体学习方法的改造,使之能适应不平衡数据下的学习,研究者们针对不同的学习模型如感知机、支持向量机、决策树、神经网络等分别提出了其代价敏感的版本。以代价敏感的决策树为例,可以从三个方面对其进行改造以适应不平衡数据的学习,这三个方面分别是决策阈值的选择方面、分裂标准的选择方面、剪枝方面,这三个方面都可以将代价矩阵引入。
  • 2)从贝叶斯风险理论出发,把代价敏感学习看成是分类结果的一种后处理,按照传统方法学习到一个模型,以实现损失最小为目标对结果进行调整,优化公式如下所示。此方法的优点在于它可以不依赖所用的具体分类器,但是缺点也很明显,它要求分类器输出值为概率。
  • 3)从预处理的角度出发,将代价用于权重调整,使得分类器满足代价敏感的特性。

5、使用新评价指标

1)混淆矩阵(Confusion Matrix):使用一个表格对分类器所预测的类别与其真实的类别的样本统计,分别为:TP、FN、FP与TN。由此计算精确率(precision)、召回率(recall)、F1值(F1 value)

2)ROC曲线(ROC Curves) 、AUC 、Kappa (Cohen kappa)。

G-Mean是另外一个指标,也能评价不平衡数据的模型表现:

G-Mean\ =\ \sqrt{\frac{TP}{TP\ +\ FN} \ \times \ \frac{TN}{TN\ +\ FP} }

6、尝试不同的分类算法

不同的算法适用于不同的任务与数据,应该使用不同的算法进行比较。

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

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

相关文章

第十四届蓝桥杯集训——JavaC组第九篇——位运算符

第十四届蓝桥杯集训——JavaC组第九篇——位运算符 目录 第十四届蓝桥杯集训——JavaC组第九篇——位运算符 值交换 异或值交换 其它位移符号&#xff1a; 这个稍微难度大一些&#xff0c;基础的有【&与、|或、^异或、<<左位移、>>右位移】。 我们一个一个…

游戏开发43课 移动游戏性能优化2

2. 资源优化 病从口入&#xff0c;资源好比是入口&#xff0c;它们若出现问题&#xff0c;会引发一连串性能问题。相反&#xff0c;资源若是优化得好&#xff0c;后面所有章节的性能都可受益。这也是把资源优化的章节提到最前的原因。 2.1 纹理优化 纹理优化的目的是让它们占…

多锦鑫能:低碳化、智能化、无人化矿山运营时代来临

全球气候变暖已经成为人类社会必须面对的重大课题&#xff0c;国际社会在推动节能减排、实现碳中和大目标上也已经达成一致意见。中国作为全球第二大经济体和负责任的大国&#xff0c;也明确向国际社会承诺&#xff0c;将在2030年实现碳达峰、2060年前实现碳中和目标。 围绕这…

[附源码]计算机毕业设计基于Vuejs的中国名茶销售平台Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

作者推荐 | 【分布式技术专题】「架构设计方案」图解学习法总结集群模式下的各种软负载均衡策略实现及原理分析

背景介绍 在分布式系统中&#xff0c;负载均衡是非常重要的环节&#xff0c;通过负载均衡将请求派发到网络中的一个或多个节点上进行处理。 通常来说&#xff0c;负载均衡分为硬件负载均衡及软件负载均衡。硬件负载均衡&#xff0c;顾名思义&#xff0c;在服务器节点之间安装专…

功能安全软件架构

已剪辑自: https://mp.weixin.qq.com/s/pCenGTqg2Xi_t7b8ebNHMA 1. E-GAS 安全架构思想 汽车功能安全旨在把电子电气系统失效而导致的人身危害风险控制在合理范围内。下图是常见的电子电气系统硬件构成图&#xff0c;一个电子电气系统的构成要素&#xff0c;除了图中可见的硬…

均值坐标参数化(MVC Parameterization)

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 均值坐标定义 均值坐标定义 v0是多边形v1v2v3...vn内的一点v_0是多边形v_1v_2v_3...v_n内的一点v0​是多边形v1​v2​v3​...vn​内的一点 就会存在均值坐标ϕi(v0)ω…

腾讯云服务器CVM快速配置购买教程,新手上云必备!

腾讯云服务器快速配置购买教程是新手必备的上云教程。主机教程网在本文中以腾讯云服务器为例&#xff0c;给大家带来一个完整的、手把手教学的服务器购买流程。助力快速完成服务器的购买、配置、以及网站的搭建&#xff0c;给新手节省宝贵的时间&#xff0c;避免采坑&#xff0…

线程相关学习记录(1)

认识线程 什么是线程 进程&#xff1a; 正常电脑中启动的某个程序应用&#xff0c;并且会获得计算机分配的资源&#xff08;cpu&#xff0c;内存&#xff0c;硬件设备&#xff09; 线程&#xff1a; 进程中为了完成某个功能&#xff0c;内部划分出的不同的资源分配单位。通常…

[附源码]Python计算机毕业设计SSM基于框架的旅游管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MyBatis详细学习笔记

一、MyBatis简介 MyBatis是ORM框架&#xff0c;即对象关系映射框架。 二、搭建MyBatis 不同的MySQL版本使用的JDBC不同 com.mysql.jdbc.Driver // MySQL 5 com.mysql.cj.jdbc.Driver // MySQL 8不同版本的MySQL的url也不同 jdbc:mysql://localhost:3306/ssm // MySQL 5 jd…

神仙级Python办公自动化教程(非常详细),从零基础入门到精通,轻松玩转Excel,从看这篇开始

Excel是Office办公中使用非常频繁的一个表格制作、数据分析与图表制作的组件。随着现在数据处理量越来越大&#xff0c;日常办公中很多重复性工作耗费了广大办公人员越来越多的时间&#xff0c;那么如何才能化繁为简&#xff0c;提高办公自动化水平呢&#xff1f;借助Python中的…

【小程序】小程序中插槽使用

&#x1f4ad;&#x1f4ad; ✨&#xff1a;小程序插槽   &#x1f49f;&#xff1a;东非不开森的主页   &#x1f49c;: 没关系 天空越黑星星越亮&#x1f49c;&#x1f49c;   &#x1f338;: 如有错误或不足之处&#xff0c;希望可以指正&#xff0c;非常感谢&#x1f60…

大学生个人网站作业 超简单DIV CSS个人网页成品 简单个人网站作业模板 HTML个人网页设计下载 简约黑白色个人主页

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

Redis大key多key拆分方案

业务场景中经常会有各种大key多key的情况&#xff0c; 比如&#xff1a; 1&#xff1a;单个简单的key存储的value很大 2&#xff1a;hash&#xff0c; set&#xff0c;zset&#xff0c;list 中存储过多的元素&#xff08;以万为单位&#xff09; 3&#xff1a;一个集群存储了…

Java脚本化编程实践整理 ScriptEngineManager万字详解

文章目录认识Java支持脚本语言的意义Java对JavaScript的支持Rhino/Nashorn概述Nashorn的目的实践操作HelloWorld执行脚本文件代码脚本语言使用Java的变量执行脚本方法/函数脚本语言使用Java的类对象脚本语言实现Java的接口脚本的多个作用域脚本语言使用Java的数据类型创建java对…

[附源码]计算机毕业设计基于Web的软考题库平台Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

CSS固定定位与粘性定位4大企业级案例

前面两篇文章为大家详细讲解了相对定位与绝对定位的应用场景和案例。如果想了解的可以在公众号里面查看去看。本小节我们学习下固定定位与粘性定位的应用场景和案例。 属性值 描述 relative 相对定位 相对于自身正常位置进行位置的调整 absolute 绝对定位 相对于其最近的定…

如何用实时数据分析辅助企业智能决策,这个高效的解决方案了解下?

随着产业互联网的发展&#xff0c;企业数字化能力的边界也在不断拓展&#xff0c;除了对海量数据的获取、处理及应用需求以外&#xff0c;更快地获取实时数据也开始成为大数据时代各行各业的共同目标。 在企业的业务经营中&#xff0c;实时数据是营销、运维、决策的重要支撑&am…

ChatGPT OpenAI 让学习更加高效工作中实现效率翻倍

ChatGPT是一款由OpenAI开发的聊天机器人&#xff0c;它具有出色的自然语言处理能力&#xff0c;能够与人类进行真实的对话。它的核心技术是GPT-3语言模型&#xff0c;能够自动学习语言特征&#xff0c;并进行语义理解、文本生成等任务。ChatGPT具有快速回答和丰富内容的特点&am…