Abstract
非平衡数据集是一个在现实世界应用中经常发现的一个问题,它可能会给机器学习算法中的分类表现带来严重的负面影响。目前有很多的尝试来处理非平衡数据的分类。在这篇文章中,我们同时从数据层面和算法层面给出一些已经存在的用来解决非平衡数据问题的简单综述。尽管处理非平衡数据问题的一个通常的做法是通过人为的方式,比如超采样或者降采样,来重新平衡数据,一些研究者证实例如修改的支持向量机,基于粗糙集的面向少数类的规则学习方法,敏感代价分类器等在非平衡数据集上面也表现良好。我们观察到目前在非平衡数据问题上面的研究正趋向于使用混合算法。
关键词:敏感代价学习,非平衡数据集,修改的SVM,超采样,降采样
1. Introduction
如果一个数据集中某一个类别的样本远远多余其他的类别,那么我们就称这种数据为非平衡数据。当数据中至少一个类别代表了训练样例中很少的数量(称为少数类),而其他类别组成了大多数时,数据就会失衡。在这种状况下,分类器能够在多数类上面有很好的准确率,但是在少数类上准确率却很糟糕,主要是因为更大的多数类在传统训练标准上面的影响。很多原始的分类算法追求最小化错误率:不准确预测类别标记的百分比。他们往往忽视了不同种类的分类错误之间的不同。特别地,他们暗自的假定了所有的分类错误都有着相同的代价。
在很多现实世界的应用中,这种假定是不正确的。不同分类错误之间的差异可能是相当大的。例如,在癌症的医疗诊断中,如果我们把有癌症视为正类别,无癌症(健康)视为负类别,那么漏诊(病人本身得了癌症,但是却预测其没得,这也被称为“假阴性”,false negtive)的代价要比误诊(假阳性,false positive)严重得多。
病人可能失去他的生命仅仅是因为延误了最佳的诊断和治疗阶段。同样地,如果携带炸弹视为正类别,那么漏检掉一个携带炸弹上飞机的恐怖分子要比搜查一个无辜的人代价大得多。
非平衡数据问题在现实世界的很多应用中都有出现,例如文本归类,故障监测,欺骗检测,卫星图像中的油田漏油监测,毒理学,文化建模,医疗诊断等[1]。很多关于非平衡数据集的研究论文通常都认为,由于不相等的类别分配,已经存在的分类器的表现都偏向于多数类。现存分类算法在非平衡数据集上表现糟糕的原因主要有这几点:1.它们是准确率驱动的,它们的目标是最小化整体的错误率,这样一来少数类在其中起到的作用就很小了。2.它们假设数据中所有的类别都有同等的分配。3.它们同时假设不同类别分类错误的代价是相同的[2]。由于数据的不平衡,数据挖掘学习算法往往产生退化的模型,它们并没有把少数类考虑进去,因为大多数数据挖掘算法都是假设数据是平衡的。
很多非平衡数据分类问题的解决方案之前都有人同时从数据层面和算法层面上提出过[3]。在数据层面,这些解决方法包括多种不同形式的重采样,例如随机超采样放回,随机降采样,直接超采样(没有新的样例产生,但是样例被替换的选择是知道的,而不是随机的),直接降采样(同样样例被去除的选择是知道的),新样本迭代方式被告知的超采样以及以上所有技术的结合。在算法层面,解决方法包括调整不同类别的代价以反向的削减类别不平衡影响,调整树的叶节点的概率评估(当使用决策树时),调整决策阈值,基于识别(从一个类中学习)而不是基于辨别(两种类别)的学习。
解决非平衡数据最普遍的技术包括重新调整训练接,使用代价敏感的分类器和雪球法。最近,不少在非平衡数据上有很好表现的方法被提出来了。这些方法包括修改的SVMs,K临近法(KNN),神经网络,遗传编程,基于粗糙集的算法,概率决策树和机器学习方法。下一节将介绍各种方法的细节。
2. Sampling Methods
一种简单的数据层面的平衡不同类别的方法就是对原始数据集进行重采样,要么对少数类进行超采样,或者对多数类进行降采样,直到不同类别的数据差不多是相同的为止。这两种策略能够被用在任何学习系统中,因为它们相当于是一种预处理阶段,允许学习系统来接收训练实例就好像他们是属于一个已经平衡的数据集。这样一来,系统由于每一类别不同比例的训练样本而带来的对于多数类的任何偏向都能够被削减和抑制了。
Hulse等人[4]提出重采样方法的作用取决于很多的因素……(待更新)
Reference
- [Journal Paper] An overview of classification algorithms for imbalanced datasets,IJETAE_0412_07
- [Data Science] Learning from Imbalanced Classes,(Jupyter,Notebooks)
- [Quora] In classification, how do you handle an unbalanced training set?
- [Github] 不平衡数据分类(Imbalanced data classification)
- [SimaFore] Predictive analytics on unbalanced data: classification performance
- [Paper] Overview of classification algorithms for unbalanced data
- [IEEE] Unbalanced Data Classification Using <i>extreme outlier</i> Elimination and Sampling Techniques for Fraud Detection
- [Analytics Vidhya] Practical Guide to deal with Imbalanced Classification Problems in R
- [推酷] 用R语言实现对不平衡数据的四种处理方法
- [CSDN] 在分类中如何处理训练集中不平衡问题 1 | 2
- [机器之心] 从重采样到数据合成:如何处理机器学习中的不平衡分类问题?
(注:感谢您的阅读,希望本文对您有所帮助。如果觉得不错欢迎分享转载,但请先点击 这里 获取授权。本文由 版权印 提供保护,禁止任何形式的未授权违规转载,谢谢!)