极端不平衡数据分类问题调研

标签:无 1223人阅读 评论(0)

问题引入

 

假设老板让你创建一个模型——基于可用的各种测量手段来预测产品是否有缺陷。你使用自己喜欢的分类器在数据上进行训练后,准确率达到了 96.2%!

你的老板很惊讶,决定不再测试直接使用你的模型。几个星期后,他进入你的办公室,拍桌子告诉你你的模型完全没用,一个有缺陷的产品都没发现。

经过一番调查,你发现尽管你们公司的产品中大约有 3.8%的存在缺陷,但你的模型却总是回答「没有缺陷」,也因此准确率达到 96.2%。你之所以获得这种「naive」的结果,原因很可能是你使用的训练数据是不平衡数据集。

 

问题概述

 

当一个分类任务的数据集中来自不同类别的样本数目相差悬殊时,通常称该数据集为“类别不平衡”的。以一个现实任务为例:在点击率预估(click-through rate prediction)任务中,每条展示给用户的广告都产生一条新样本,而用户最终是否点击了这条广告决定了样本的标签。显然,只有很少一部分的用户会去点击网页里的嵌入广告,这就导致最终得到的训练数据集中正/负例样本的数量差距悬殊。同样的情况也发生在很多实际应用场景中,如金融欺诈检测(正常/欺诈),医疗辅助诊断(正常/患病),网络入侵检测(正常连接/攻击连接)等等。 需要注意的是,尽管少数类的样本个数更少,表示的质量也更差,但其通常会携带更重要的信息,因此一般更关注模型正确分类少数类样本的能力。

 

处理思路

 

1. 对数据集进行一定处理,使两类数据的规模相当。

2. 使用代价敏感学习,提高少数类别样本的重要性。

3. 学习大多数样本的分布,将少数类视作异常,将问题退化为异常检测问题。

 

方法介绍

 

1. 重采样方法

 

该类方法关注于通过修改训练数据集,使得标准学习算法也能在其上有效训练。对非平衡数据进行一定的处理,主要有以下几种方式:

 

(1)欠采样(从多数类别中删除样本)

下采样(under-sampling),是对非平衡数据中样本数较多的那一类进行采样,采样使其约等于样本量较少那一类的样本量,如RUS、NearMiss、ENN、Tomeklink等。


(2)过采样(为少数类别生成新样本)

过采样(over-sampling),是对非平衡数据中样本数较少的那一类进行采样,常规的做法就是将其复制几遍来达到正负样本平衡,因为是同样的数据复制多份,很容易发生过拟合,一般比较少用,如SMOTE,ADASYN,Borderline-SMOTE等。

 

(3)人工合成( SMOTE )

人工合成就是人为地去合成一些样本量较少的数据,来达到正负样本平衡,人工合成数据能够很好地避免过采样带来的模型过拟合。

 

(4)结合上述几种方案的混合类方法

过采样+欠采样去噪,如SMOTE+ENN等。

 

标准的随机重采样方法使用随机方法来选择用于预处理的目标样本。然而随机方法可能会导致丢弃含有重要信息的样本(随机欠采样)或者引入无意义的甚至有害的新样本(随机过采样),因此有一系列更高级的方法,试图根据根据数据的分布信息来在进行重采样的同时保持原有的数据结构。

 

优点:

1. 该类方法能够去除噪声/平衡类别分布:在重采样后的数据集上训练可以提高某些分类器的分类性能。

2. 欠采样方法减小数据集规模:欠采样方法会去除一些多数类样本,从而可能降低模型训练时的计算开销。

 

不足:

1. 采样过程计算效率低下:这一系列的“高级”重采样方法通常使用基于距离的邻域关系(通常是k-最近邻方法)来提取数据分布信息。该方式的缺点是需要计算每个数据样本之间的距离,而计算距离需要的计算量随着数据集的大小呈平方级增长,因此在大规模数据集上应用这些方法可能会带来极低的计算效率。

2. 易被噪声影响:此外在具有高不平衡比且包含大量噪声的工业数据集中,少数类的结构可能并不能被样本的分布很好地表示。而被这些重采样方法用来提取分布信息的最近邻算法很容易被噪声干扰,因此可能无法得到准确的分布信息,从而导致不合理的重采样策略。

3. 过采样方法生成过多数据:当应用于大规模且高度不平衡的数据集时,过采样类的方法可能会生成大量的少数类样本以平衡数据集。这会进一步增大训练集的样本数量,增大计算开销,减慢训练速度,并可能导致过拟合。

4. 不适用于无法计算距离的复杂数据集:最重要的一点是这些重采样方法依赖于明确定义的距离度量,使得它们在某些数据集上不可用。在实际应用中,工业数据集经常会含有类别特征(即不分布在连续空间上的特征,如用户ID)或者缺失值,此外不同特征的取值范围可能会有巨大的差别。在这些数据集上定义合理的距离度量十分困难。

 

2. 代价敏感学习

 

代价敏感学习给少数类样本分配较高的误分类代价,而给多数类样本分配较小的误分类代价。通过这种方式代价敏感学习在学习器的训练过程中人为提高了少数类别样本的重要性,以此减轻分类器对多数类的偏好。即调整模型中正负样本的在模型表现中的表决权重,以此来平衡样本绝对量的不平衡。比如正负样本绝对量的比值为1:10,为了抵消这种量级上的不平衡,我们在模型中可以给与模型正负样本10:1的表决权重,也就是10个正样本的表决相当于1个负样本的表决。

 

优点:

1. 不增加训练复杂度:使用该类算法魔改后的算法通常会有更好的表现,并且没有增加训练的计算复杂度。

2. 可直接用于多分类问题:该类算法通常只修改误分类代价,因此可直接扩展到多分类问题上。

 

不足:

1. 需要领域先验知识:必须注意的是,代价敏感学习中的代价矩阵(cost matrix)需要由领域专家根据任务的先验知识提供,这在许多现实问题中显然是不可用的。因此在实际应用时代价矩阵通常被直接设置为归一化的不同类别样本数量比。由于缺乏领域知识的指导,这种擅自设置的代价矩阵并不能保证得到最优的分类性能。

2. 不能泛化到不同任务:对于特定问题设计的代价矩阵只能用于该特定任务,在其他任务上使用时并不能保证良好的性能表现。

3. 依赖于特定分类器:另一方面,对于诸如神经网络的需要以批次训练(mini-batch training)方法训练的模型,少数类样本仅仅存在于在很少的批次中,而大部分批次中只含有多数类样本,这会给神经网络训练带来灾难性的后果:使用梯度下降更新的非凸优化过程会很快陷入局部极值点/鞍点(梯度为0),导致网络无法进行有效学习。使用敏感代价学习来给样本加权并不能解决这个问题。

 

 

3. 异常检测

 

分类问题的一个基本假设是各个类别的数据都有自己的分布,当某类数据少到难以观察结构的时候,可以考虑抛弃该类数据,转而学习更为明显的多数类模式,而后将不符合多数类模式的样本判断为异常/少数类,某些时候会有更好的效果。此时该问题退化为异常检测(anomaly detection)问题。异常检测任务的目的就是用以数据作为驱动的方法来找到全部异常的实例。异常可能由数据中的错误导致,但是有时也会有一些潜在的、未知的过程造成。由于只关心多数类的分布,这些方法一般为unsupervised / weakly-supervised,只使用单类别数据训练。

 

(1)传统异常检测

 

大多数传统的异常检测方法,例如基于距离的方法和基于密度的方法,有一系列的经典方法;如One-class SVM。

 

基于内核的一类分类方法中最著名的例子是一类SVM(OC-SVM)(Scholkopf等人,2001)。 OC-SVM的目标是在特征空间中找到最大余量超平面w∈Fk,以最大程度地将映射数据与原点分开。

 

向量数据描述(SVDD)(Tax&Duin,2004)是一种与OC-SVM有关的技术,其中超球面用于分离数据而不是超平面,(x)iFk <ρ,被认为是异常的。 SVDD的目标是找到中心c∈Fk且半径R> 0的最小超球面,该超球面将特征空间Fk中的大部分数据包围起来。

 

(2)深度异常检测

 

深度学习方法的性能已经超过了传统的方法。监督学习的异常检测方法依靠将数据分类,而非监督技术希望对数据进行解释与理解。

 

1)监督型深度异常检测

可视为监督型的二分类或者多分类任务,使用正常与异常的数据标签。尽管监督型的深度异常检测方法提升了性能,但是其应用不如半监督及非监督方法广泛,因为数据的标签难以获得,而且由于数据不均衡性(正常样本数量远远大于异常样本数量),该方法性能受到影响。

模型分两部分,特征提取网络及分类网络。深度学习对于数据量要求较高,使得该类方法难以获得足够数量的干净样本标签。

优点:准确率比半监督和非监督方法高;测试时间快(仅需要推理)

缺点:需要准确的数据标签,难以获得;如果特征空间高度复杂及非线性,将难以完成分类。

 

2)半监督深度异常检测

正常样本的标签要比异常样本易于获得,所以半监督方法应用更广。半监督深度异常检测假设所有的训练样本只有一个标签,即正样本,训练过程学习到正样本的界限,测试时,不属于正样本边界内的就划为异常。该方法使用现有的正常样本的标签来分辨异常。一种使用深度自编码器进行异常检测的方法为使用半监督方法在正常数据上训练自编码器,充分训练后,深度自编码器对于正常数据的重建误差要比异常数据低。GAN在半监督异常检测方法展现了良好的性能,即便只有很少的标签数据;标签的使用,通常是一类,能够相对非监督方法获得较好的效果。

 

3)非监督深度异常检测。

非监督方法基于数据固有特征检测异常,用于数据标签难以获得的场景。自动编码器是所有非监督深度异常检测方法的核心.

该方法假设:在原始或者隐特征空间中,正常的数据是能够和异常数据区分开;正常数据占绝大多数。

自动编码器的训练,计算复杂性要比传统方法(PCA(principal component analysis))高。

优点:无需数据标注

缺点:对于在复杂而高纬空间的数据进行学习是有难度的;难以获得适当的数据降维;对噪声敏感;准确率较低。

 

4)混合深度异常检测

深度模型提取特征+机器学习进行分类。

由于两阶段学习,加剧计算量。

优点:特征提取能够有效降低尺度粗糙。

 



参考资料

 

极端类别不平衡数据下的分类问题S02:问题概述,模型选择及人生经验https://zhuanlan.zhihu.com/p/66373943

机器学习不平衡数据处理参考https://zhuanlan.zhihu.com/p/68099299(经验)

机器学习中非平衡数据处理https://zhuanlan.zhihu.com/p/37311047(代码实践)

机器学习中如何处理不平衡数据?https://zhuanlan.zhihu.com/p/56960799(数学证明)

用于异常检测的深度学习方法综述https://www.jianshu.com/p/1e8116993490

How to use machine learning for anomaly detection and condition monitoring

https://towardsdatascience.com/how-to-use-machine-learning-for-anomaly-detection-and-condition-monitoring-6742f82900d7

吴定海, 张培林, 任国全, 等. 基于支持向量的单类分类方法综述[J]. 计算机工程, 2011, 37(5): 187-189.

Haixiang G, Yijing L, Shang J, et al. Learning from class-imbalanced data: Review of methods and applications[J]. Expert systems with applications, 2017, 73: 220-239.

Ruff L, Vandermeulen R, Goernitz N, et al. Deep one-class classification[C]//International Conference on Machine Learning. 2018: 4393-4402.

Chalapathy R, Chawla S. Deep learning for anomaly detection: A survey[J]. arXiv preprint arXiv:1901.03407, 2019.


查看评论

暂无评论

发表评论
  • 评论内容:
      
首页
团队介绍
发展历史
组织结构
MESA大事记
新闻中心
通知
组内动态
科研成果
专利
论文
项目
获奖
软著
人才培养
MESA毕业生
MESA在读生
MESA员工
招贤纳士
走进MESA
学长分享
招聘通知
招生宣传
知识库
文章
地址:北京市朝阳区华严北里甲22号楼五层 | 邮编:100029
邮箱:nelist@iie.ac.cn
京ICP备15019404号-1