机器学习-类别不平衡问题

  • 引言:我们假设有这种情况,训练数据有反例998个,正例2个,模型是一个永远将新样本预测为反例的学习器,就能达到99.8%的精度,这样显然是不合理的。
  • 类别不平衡:分类任务中不同类别的训练样例数差别很大。

  一般我们在训练模型时,基于样本分布均匀的假设。从线性分类器的角度讨论,使用 y=wTx+b 对新样本分类时,用预测的 y 与一个阈值进行比较,y>0.5 即判别为正例,否则判别为负例。这里的 y 实际表达了正例的可能性(1-y是反例的可能性),0.5表明分类器认为正反例可能性相同。即

,则预测为正例

  但如果训练集中正反例数目相差悬殊,另m+表示正例数目,m-表示反例数目,则在大数的基础上,观测几率就代表了真实几率,只要分类器的预测几率高于观测几率就判定为正例,即

,预测为正例

  我们知道分类器是基于上一个公式决策的,则稍加调整

  也就是 y > m+/(m++m-) 即判定为正例,实际上想想也很简单,本来是假设正负例各占一半,所以是0.5,现在类别样本数目不均衡,所以需要大于实际正例数目所占比。以上就是类别不平衡学习的一个基本策略——“再缩放”。实际上,这种策略也是一种代价敏感学习,将 m-/ m+ 用 cost+/cost- 代替,其中cost+ 是将正例误分为反例的代价,cost-相反。

  实际上,再缩放实际操作起来不现实,因为假设的前提训练集是真实的样本总体的无偏采样往往不成立,所以观测几率未必有效。另外两种比较常用的解决方案如下:

  1、欠采样

  对训练集里的反例样本进行“欠采样”,即去除一些反例使得正反例数目接近,再进行学习。由于丢弃很多反例,会使得训练集远小于初始训练集,所以有可能导致欠拟合。所以提出以下策略

  代表算法:EasyEnsemble

  利用集成学习机制,每次从大多数类中抽取和少数类数目差不多的重新组合,总共构成n个新的训练集,基于每个训练集训练出一个AdaBoost分类器(带阈值),最后结合之前训练分类器结果加权求和减去阈值确定最终分类类别。

  2、过采样

  增加一些正例使得正反例数目接近,然后再学习。需要注意的是不能只是对初始正例样本重复采样,否则导致严重的过拟合。所以提出以下策略

  代表算法:SMOTE

  合成新的少数样本的策略是,对每个少类a样本,从最近邻中随机选一个样本b,在a、b之间连线上随机选一点作为合成新样本。

  基于算法的改进:SMOTE可能导致初始样本分布有的部分更加稠密,有的部分更加稀疏,而且使得正反例的边界模糊。所以有学者提出 Borderline-SMOTE算法,将少数类样本根据距离多数类样本的距离分为noise,safe,danger三类样本集,只对danger中的样本集合使用SMOTE算法。

时间: 2024-10-10 23:43:07

机器学习-类别不平衡问题的相关文章

机器学习之类别不平衡问题 (3) —— 采样方法

机器学习之类别不平衡问题 (1) -- 各种评估指标 机器学习之类别不平衡问题 (2) -- ROC和PR曲线 机器学习之类别不平衡问题 (3) -- 采样方法 前两篇主要谈类别不平衡问题的评估方法,重心放在各类评估指标以及ROC和PR曲线上,只有在明确了这些后,我们才能据此选择具体的处理类别不平衡问题的方法.本篇介绍的采样方法是其中比较常用的方法,其主要目的是通过改变原有的不平衡样本集,以期获得一个平衡的样本分布,进而学习出合适的模型. 采样方法大致可分为过采样 (oversampling)

机器不学习:如何处理数据中的「类别不平衡」?

机器不学习 jqbxx.com -机器学习好网站 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class skew).以常见的二分类问题为例,我们希望预测病人是否得了某种罕见疾病.但在历史数据中,阳性的比例可能很低(如百分之0.1).在这种情况下,学习出好的分类器是很难的,而且在这种情况下得到结论往往也是很具迷惑性的. 以上面提到的场景来说,如果我们的分类器总是预测一个人未患病,即预测为反例,那么我们依然有高达99.9%的预测准确率.然而这种结果是没有意

详解类别不平衡问题

本文详细介绍了类别不平衡问题,目录: 1 什么是类别不平衡问题? 2 类别不平衡导致分类困难的原因? 3 类别不平衡的解决方法? 4 如何选择类别不平衡中学习的评价指标? 5 关于解决方法选择的一些建议? 6 小结 1 什么是类别不平衡问题? 类别不平衡(class-imbalance),也叫数据倾斜,数据不平衡,就是指分类任务中不同类别的训练样例数目差别很大的情况.在现实的分类学习任务中,我们经常会遇到类别不平衡,例如交易欺诈.广告点击率预测.病毒脚本判断等:或者在通过拆分法解决多分类问题时,

分类类别不平衡问题

一.什么是类不平衡 在分类中经常会遇到:某些类别数据特别多,某类或者几类数据特别少.如二分类中,一种类别(反例)数据特别多,另一种类别(正例)数据少的可怜.如银行欺诈问题,客户流失问题,电力盗窃以及罕见疾病识别等都存在着数据类别不均衡的情况. 二.为什么要对类不平衡进行特殊处理 传统的分类算法旨在最小化分类过程中产生的错误数量.它们假设假阳性(实际是反例,但是错分成正例)和假阴性(实际是正例,但是错分为反例)错误的成本是相等的,因此不适合于类不平衡的数据. 有研究表明,在某些应用下,1∶35的比

[转]如何处理机器学习中的不平衡类别

如何处理机器学习中的不平衡类别 原文地址:How to Handle Imbalanced Classes in Machine Learning 原文作者:elitedatascience 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:RichardLeeH 校对者:lsvih, lileizhenshuai 如何处理机器学习中的不平衡类别 不平衡类别使得"准确率"失去意义.这是机器学习 (特别是在分类)中一个令人惊讶的常见问题,出现于每

从重采样到数据合成:如何处理机器学习中的不平衡分类问题?

转载自[机器之心]http://www.jiqizhixin.com/article/2499本文作者为来自 KPMG 的数据分析顾问 Upasana Mukherjee 如果你研究过一点机器学习和数据科学,你肯定遇到过不平衡的类分布(imbalanced class distribution).这种情况是指:属于某一类别的观测样本的数量显著少于其它类别. 这个问题在异常检测是至关重要的的场景中很明显,例如电力盗窃.银行的欺诈交易.罕见疾病识别等.在这种情况下,利用传统机器学习算法开发出的预测模

【机器学习】解决数据不平衡问题

在机器学习的实践中,我们通常会遇到实际数据中正负样本比例不平衡的情况,也叫数据倾斜.对于数据倾斜的情况,如果选取的算法不合适,或者评价指标不合适,那么对于实际应用线上时效果往往会不尽人意,所以如何解决数据不平衡问题是实际生产中非常常见且重要的问题. 什么是类别不平衡问题 我们拿到一份数据时,如果是二分类问题,通常会判断一下正负样本的比例,在机器学习中,通常会遇到正负样本极不均衡的情况,如垃圾邮件的分类等:在目标检测SSD中,也经常遇到数据不平衡的情况,检测器需要在每张图像中评价一万个到十万个候选

百度技术沙龙第48期回顾:大规模机器学习(含资料下载)

原文:http://www.infoq.com/cn/news/2014/03/baidu-salon48-summary 2014年3月15日,在由@百度主办.@InfoQ负责策划组织和实施的第48期百度技术沙龙活动上,来自百度联盟大数据机器学习技术负责人夏粉,和搜狗精准广告研发部技术经理王晓博,各自分享了其在机器学习方面的实战经验.他们的话题涉及“广告数据上的大规模机器学习”和“大数据场景下主题检索应用”这两个方面,本文将对讲师各自的分享做简单的回顾,同时提供相关资料的下载. 主题一:广告数

机器学习和数据挖掘推荐书单

有了这些书,再也不愁下了班没妹纸该咋办了.慢慢来,认真学,揭开机器学习和数据挖掘这一神秘的面纱吧! <机器学习实战>:本书第一部分主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了多种经典的监督学习算法,如k近邻算法.朴素贝叶斯算法.Logistic回归算法.支持向量机.AdaBoost集成方法.基于树的回归算法和分类回归树(CART)算法等.第三部分则重点介绍无监督学习及其一些主要算法:k均值聚类算法.Apriori算法.FP-Growth算法.第四部分介绍了机器学习算法的一些附属