(文章来自论文)
合成少数过采样技术预处理算法被认为是从不平衡数据中学习的“事实上”的标准。这是由于它在程序设计中的简单性,以及它在应用于不同类型的问题时的健壮性。自2002年出版以来,SMOTE在多个不同领域的各种应用中取得了成功。SMOTE还启发了几种解决班级不平衡问题的方法,并为新的监督学习范式做出了重大贡献,包括多标签分类、增量学习、半监督学习、多实例学习等。它是从不平衡数据中学习的标准基准。它还包含在许多不同的软件包中——从开源软件到商业软件。在纪念SMOTE成立15周年的这篇文章中,我们回顾了SMOTE的历程,讨论了SMOTE的现状及其应用,并确定了扩展SMOTE解决大数据问题的下一组挑战。
在本文中,我们总结了SMOTE及其在过去15年中的影响,庆祝了它对机器学习和数据挖掘的贡献,并提出了下一个挑战状态,以不断推进从不平衡数据中学习的前沿。虽然我们不包括对SMOTE超过5,370次引用的讨论(截至2018年2月1日),但我们特别关注这篇文章,列举了SMOTE的各种扩展,并讨论了未来的道路。例如,我们讨论了SMOTE对其他学习范式的扩展,例如流数据,概念漂移,或多标签/多实例分类任务,等等。我们还对不平衡数据中的潜在情况进行了分析,这些情况需要更深入地研究SMOTE的应用,例如数据的内在特征,包括小分离、重叠类等。最后,我们提出了大数据问题中不平衡分类的挑战。我们希望这篇文章能够提供一个总结性的概述,包括SMOTE、它的扩展以及社区中有待解决的挑战。
SMOTE算法执行过采样方法来重新平衡原始训练集。SMOTE的关键思想不是简单地复制少数类实例,而是引入合成的例子。这个新数据是通过在定义的邻域内的几个少数类实例之间进行插值而创建的。因此,该过程被认为是集中在“特征空间”而不是“数据空间”,换句话说,该算法是基于特征的值及其关系,而不是将数据点作为一个整体来考虑。这也导致研究原始和合成实例之间的理论关系必须深入分析,包括数据维度。必须考虑数据和特征空间中的方差和相关性等属性,以及训练和测试示例分布之间的关系(布劳格斯和苏露莎,2013)。我们将在下文第5节讨论这些问题。SMOTE的一个简单例子如图1所示。选择一个 x i x_i xi少数类实例作为创建新合成数据点的基础。基于距离度量,从训练集中选择同一类的几个最近邻居(点 x i 1 x_i1 xi1到 x i 4 x_i4 xi4)。最后,为了获得新的实例 r 1 r_1 r1至 r 4 r_4 r4,执行随机插值。
正式程序如下。首先,设置过采样的总量N(整数值),其可以被设置为获得近似1:1的类分布,或者通过包装过程被发现。然后,执行由几个步骤组成的迭代过程。首先,从训练集中随机选择一个少数类实例。接下来,获得它的K个最近邻居(默认为5个)。最后,通过插值随机选择这K个实例中的N个来计算新实例。为此,需要考虑特征向量(样本)和每个选定邻居之间的差异。这个差值乘以一个在0和1之间绘制的随机数,然后将其添加到先前的特征向量中。这导致沿着特征之间的“线段”选择随机点。在名义属性的情况下,随机选择两个值中的一个。整个过程总结在算法1中。
图2显示了SMOTE应用程序的一个简单例子,以便理解如何计算合成实例。
为了总结这一部分,我们旨在介绍第一批成功使用SMOTE预处理算法的实际应用,这两个应用都基于生物信息学领域。具体地说,我们强调酵母蛋白质分子函数的多类问题(Hwang, Fotouhi, Finley Jr., & Grosky, 2003)原始问题被分成不平衡的二进制子集,因此在模块化神经网络的学习阶段之前需要新的合成实例,以避免偏向多数类。
这里讨论的方面包括(1)要被过采样的实例的初始选择,(2)作为技术中的步骤的与欠采样的集成,(3)插值的类型,(4)具有维数变化的操作,(5)合成实例的自适应生成,(6)重新标记的可能性,以及(7)噪声生成实例的滤波。这些提到的方面涉及到分类的定义,因为它们决定了每种技术的操作方式。接下来,我们详细描述每个属性。
要过采样的实例的初始选择:通常在合成示例生成过程开始之前,确定数据中要过采样的最佳候选对象。该策略旨在减少最终数据集中的重叠和噪声。许多技术选择选择靠近边界类的实例(Han et al., 2005),或者不生成合成的实例,这取决于属于邻域的少数类实例的数量(Bunkhumpornpat,Sinapiromsaran, & Lursinsap, 2009)。尽管文献中提出了许多初始选择的替代方案,但几乎所有的方案都遵循上述两种策略中的任何一种。两个例外是在LVQ优化过程之后合成例子的产生(Nakamura, Kajiwara, Otsuka, & Kimura, 2013)和从由SVM获得的支持向量中选择初始点(Cervantes, Garc´ ıa-Lamont,Rodr´ ıguez-Mazahua, Chau, Ruiz-Castilla, & Trueba, 2017)。
欠采样合成: 属于多数类的样本也通过使用随机或有根据的欠采样技术来去除。欠采样步骤可以在过采样开始时完成,也可以作为内部操作与合成示例的生成一起完成。通常,过采样跟随欠采样。
插值类型: 这一特性提供了关于人工或合成实例生成的各种机制,并且经常与新发展的主要原创性相关联。它定义了创建新的人工示例的方式,并且可以找到许多替代方法。插值机制可以是范围受限的(Han et al., 2005; Bunkhumpornpat et al., 2009; Maciejewski & Stefanowski, 2011),例如,不仅从少数群体中寻找最近的邻居,而且从多数群体中寻找最近的邻居;创建比其邻居更接近所选实例的新实例,或通过使用特征加权(Hukerikar, Tumma, Nikam, & Attar, 2011);多重插值(de la Calleja & Fuentes, 2007; Gazzah & Amara, 2008)涉及两个以上的例子或基于几何形状的以下拓扑,如椭圆(Abdi & Hashemi, 2016)和voronoi图(Young, Nykl, Weckman, &Chelberg, 2015)和图(Bunkhumpornpat et al., 2012);基于聚类的插值(Barua, Islam, & Murase, 2011),其中新的例子可以是聚类的质心,或者可以创建涉及属于同一聚类的例子;使用不同随机分布的内插,例如高斯(Sandhan & Choi, 2014)、数据的概率分布函数的估计(Gao, Hong, Chen, Harris, & Khalaf, 2014b)、概率平滑(Wang, Li,Chao, & Cao, 2012)、数据中协方差的保持(Cateni, Colla, & Vannucci, 2011)以及更复杂的内插,例如马尔可夫链(Das, Krishnan,& Cook, 2015)或Q-并集(Rong, Gong, & Ng, 2014)。甚至有可能没有插值,例如当新数据仅使用单点生成时,通过抖动(Mease, Wyner, & Buja, 2007),高斯扰动(de la Calleja,Fuentes, & Gonz´ alez, 2008),只有简单的副本与标签的变化(Stefanowski &Wilk, 2008),或者甚至通过将过采样与将大多数样本推出球体相结合(Koziarski, Krawczyk, & Wozniak, 2017)。
维度改变的操作: 当该技术在生成人工或合成示例之前或期间包含降维或增维时,就会出现这种情况。最常见的方法是在开始时改变数据的维度,然后在新的维度空间中工作;要么通过主成分分析(PCA) (Abdi & Hashemi, 2016)或相关技术(Gu, Cai, & Zhu, 2009; Xie, Jiang,Ye, & Li, 2015),特征选择(Koto, 2014),装袋(Wang, Yun, li Huang, &ao Liu, 2013a),流形方法(Bellinger, Drummond, & Japkowicz, 2016)和自动编码器(Bellinger, Japkowicz, & Drummond, 2015),以及通过使用核函数(Mathew, Luo, Pang, & Chan, 2015; Tang & He, 2015; Pérez-Ortiz, Gutiérrez,Ti˜ no, & Hervás-Mart´ ınez, 2016)。此外,对数据主成分的估计可用于引导插值(Tang & Chen, 2008)。
合成样本的自适应生成: ADASYN(He, Bai, Garcia, & Li, 2008)提出的自适应生成假设是根据每个少数类的学习困难程度采用加权分布。这样,将为一些少数类实例生成更多的合成数据,这些实例与其他实例相比,学习起来更加复杂。受ADASYN的启发,许多技术结合了类似的机制来控制与每个少数示例或少数示例的子组相关联的新人工示例的生成数量(Alejo, Garc´ ıa, & Pacheco-Sánchez, 2015; Rivera, 2017)。
重标签: 该技术提供了在合成实例生成期间重新标记属于多数类的实例(Dang, Tran, Hirose,& Satou, 2015)或替换插值机制(Blaszczynski, Deckert, Ste-fanowski, & Wilk, 2012)的选择。
过滤由噪声产生的实例: SMOTE的第一次扩展是在SMOTE过程结束后添加一个噪声滤波步骤,这是由它产生重叠和噪声示例的众所周知的缺点所驱动的。两种典型的技术是SMOTE-TomekLinks和SMOTE+ENN(Batista et al., 2004)。人工例子的过滤是支持SMOTE在真实数据上成功的频繁操作。已经提出了许多种过滤器来增强SMOTE,例如贪婪过滤策略(Puntumapon & Waiyamai, 2012),基于粗糙集的过滤(Ramentol,Caballero, Bello, & Herrera, 2012; Hu & Li, 2013; Ramentol, Gondres, Lajes, Bello,Caballero, Cornelis, & Herrera, 2016),基于集合的过滤(Sáez, Luengo, Ste-fanowski, & Herrera, 2015)和生物灵感优化程序(López, Triguero,Carmona, Garc´ ıa, & Herrera, 2014; Zieba, Tomczak, & Gonczarek, 2015; Jiang, Lu,& Xia, 2016; Cervantes et al., 2017)。
迄今为止,在专业文献中已经提出了超过85个SMOTE扩展。本节致力于根据之前研究的属性对它们进行列举和分类。表1列举了本文回顾的方法。在这一领域,作者通常为他们的建议提供一个名称,只有少数例外。
正如我们在表1中看到的,该技术最常用的特性是合成示例的初始选择和自适应生成。近年来,过滤以及内核函数的使用变得越来越普遍。关于插值过程,通常也用其他更复杂的方法来代替原来的方法,例如基于聚类或从概率函数导出的方法。值得一提的是,没有一种技术可以将四种机制应用于人工样本生成的校准、合成或属于多数类的有害样本的选择和去除;即初始选择、与欠采样的集成、自适应生成和全部过滤。由于篇幅限制,不可能描述所有审查的技术。然而,我们将从表1中为最著名的技术提供简要的解释:
Borderline-SMOTE (Han et al., 2005):该算法的前提是远离边界的例子对分类的成功贡献很小。因此,该技术通过使用要被过采样的每个实例的邻域内的多数和少数示例之间的比率来识别那些属于边界线的示例。噪声样本,那些所有邻居都来自多数类的例子,不被考虑。所谓的危险例子,以适当的比例,被过采样。
AHC(Cohen et al., 2006):这是首次尝试使用聚类生成新的合成示例来平衡数据。用K-means算法对多数样本进行欠采样,用凝聚层次聚类对少数样本进行过采样。这里,聚类是从生成的树状图的所有层次收集的,它们的质心是用原始的少数类例子插值的。
ADASYN (He et al., 2008):它的主要思想来自于这样一个假设,即根据少数样本的类型,根据其学习的复杂性,利用加权分布。每一个例子的合成数据的数量与每一个少数样本的难度有关。这个难度是基于邻域中属于多数类的示例的比率。然后使用少数实例的所有比率计算密度分布,这些将用于计算每个少数类样本需要生成的合成样本数。
Safe-Level-SMOTE (Bunkhumpornpat et al., 2009):在生成合成实例之前,它会为每个少数样本分配一个安全级别。每个合成样本的位置将更接近最大安全级别,因此只在安全区域生成所有合成样本。安全级别是邻域内少数实例数量的比率,安全级别比率取决于每个实例的安全级别及其邻域内实例的安全级别。插值由一个间隙控制,该间隙取决于每个少数实例的安全级别比率。
DBSMOTE(Bunkhumpornpat et al., 2012): 该算法依赖于一种称为DBSCAN的基于密度的聚类方法,并通过沿着从每个少数类实例到少数类聚类的伪中心的最短路径生成合成样本来执行过采样。DBSMOTE受到边界线-SMOTE的启发,因为它在重叠区域运行,但与边界线-SMOTE不同,它也试图保持少数和多数类的准确性。
ROSE (Menardi & Torelli, 2014): ROSE是一种在完整框架内提出的过采样技术,用于在不平衡数据中获取分类规则。它是根据平滑的自举形式从类中生成新的人工数据而建立的,其背后的思想得到了核方法的理论上众所周知的特性的支持。该算法使用以随机选择的示例为中心的概率分布,并根据比例参数的平滑矩阵,对新实例进行采样。
MWMOTE(Barua et al., 2014): 基于现有过采样方法可能产生错误的合成少数样本的假设,MWMOTE分析最困难的少数样本,并根据它们与最近多数样本的距离为它们分配权重。然后使用聚类方法从加权的信息少数类实例中生成合成示例,确保它们必须位于少数类簇内。
MDO(Abdi & Hashemi, 2016): 这是最近受马氏距离启发的多类方法之一。MDO建立了合成的例子,与其他少数类的例子相比,每个被检查的类的平均值具有相同的马氏距离。因此,通过在沿着概率轮廓生成合成实例期间保持协方差,可以更好地学习少数实例的区域。此外,降低了不同类别区域之间重叠的风险。
分类器集成已经成为解决不平衡分类问题的一种流行的学习框架。SMOTE还参与和/或扩展到许多基于集成的方法。表2显示了一系列基于集成的技术,这些技术结合了SMOTE本身或SMOTE的衍生物,作为实现学习来形成集成的分类器集合的多样性的主要步骤。请注意,该表仅包含与过采样和合成示例生成相关的方法;读者可以查阅专门的文献来回顾SMOTE没有参与的其他不平衡学习的集合(Galar, Fernandez, Barrenechea, Bustince, & Herrera, 2012; Fern´ andez,L´ opez, Galar, Del Jesus, & Herrera, 2013; Hoens & Chawla, 2010)。具体来说,重要的是要指出,我们可能会发现几项研究表明,基于欠采样的方法与集成学习有很好的协同作用(Khoshgoftaar, Hulse,& Napolitano, 2011; Galar et al., 2012; Blaszczynski & Stefanowski, 2015; Galar, Fernández,Barrenechea, Bustince, & Herrera, 2016)。表2的结构与前面的表1非常相似。维度变化和过滤是集成中不使用的两个属性。此外,我们添加了一个新的列来指定集成方法的类型,即如果该方法是一种增强、打包或一对全(OVA)方法。
SMOTE被确立为从不平衡数据集学习的“事实”标准或基准。尽管不可能调查所有涉及SMOTE的分析研究,但在这个简短的部分,我们回顾了一些对SMOTE进行深入研究的最有影响力的实证研究。第一类实验研究是检查过采样是否比欠采样更有效,以及应该使用什么样的过采样速率或欠采样速率(Estabrooks, Jo, & Japkowicz, 2004)。几项研究从更普遍的角度解决了这一问题(López et al., 2013),并特别关注SMOTE,询问如何发现适当的取样数量和类型(Chawla et al., 2008)。在巴蒂斯塔等人(2004)的工作中,比较了一些常见的重采样方法,SMOTE与欠采样的混合显示出优于其他重采样技术。后来,普拉蒂、巴蒂斯塔和席尔瓦(2015)设计了一个新的实验装置,以回答一些关于学习范式、不平衡程度和建议解决方案之间的关系和表现的开放式问题。可以找到更复杂的分析研究来分析数据的内在特征(López et al., 2013)、数据难度因素,如少数实例的罕见子概念、类别重叠(Luengo, Fernández, Garc´ ıa, & Herrera, 2011; Stefanowski,2016)和不同类型的少数民族阶层的例子(Napierala & Stefanowski, 2016)。
在SMOTE中特别研究的另一个问题是数据预处理和成本敏感学习之间的关系。在洛佩兹、费尔南德斯、莫雷诺-托雷斯和埃雷拉(2012)的评论中,为此目标进行了详尽的实证研究,得出结论认为预处理和成本敏感学习都是解决不平衡问题的好方法和等效方法。
关于算法的不同类型,SMOTE已经结合代价敏感神经网络(Zhou & Liu, 2006),支持向量机(Tang, Zhang,Chawla, & Krasser, 2009),基于语言模糊规则的分类系统(Fernandez,Garcia, del Jesus, & Herrera, 2008)和基于遗传学的规则归纳机器学习(Fernandez, Garcia, Luengo, Bernado-Mansilla, & Herrera, 2010)进行了深入分析。
在这一节中,我们将介绍基于SMOTE的方法来解决其他学习范式。特别是,这一节将分为五个小节,每个小节概述了每种范式和解决这一问题的技术。SMOTE的扩展已经应用于其他学习范式:(1)流式数据(见第4.1节);(2)半监督和主动学习(在第4.2节);(3)多实例多标签分类(4.3节);(4)回归(4.4节)和(5)其他更复杂的预测问题,如文本分类、低质量数据分类等(见4.5节)。
表3按时间顺序总结了SMOTE扩展,指出了它们的引用、算法名称和它们处理的学习范例。在下文中,我们将简要描述每种学习范式和相关的开发技术。
许多学习算法的应用程序需要处理数据以流方式到达的动态环境。数据的在线性质为分类器创造了一些额外的静态要求(Krawczyk et al., 2017)。此外,预测模型通常需要适应概念漂移,概念漂移是由数据流的非平稳特性导出的现象。在不平衡分类的离线版本中,分类器可以在学习开始之前估计少数类和多数类之间的关系。然而,在在线学习中,不可能做到这一点,因为课程可以随着时间的推移改变它们的分布,因此它们必须应对数据的动态性。
已经提出了两种基于SMOTE的预处理技术(Ram´ ırez-Gallego et al., 2017)来处理不平衡的数据流。首先是Learn++。NSE-SMOTE (Ditzler & Polikar, 2013),是Learn++的扩展。SMOTE (Ditzler et al., 2010)。首先,作者将SMOTE合并到算法Learn++中。神经元特异性烯醇化酶,并在他们决定用一个战略性地利用少数类数据的子序列来代替SMOTE之后。第二种技术是GOS-伊尔(Barua et al., 2015)。它的工作原理是使用标准的过采样增量更新基础学习器。
当一个数据流随着时间的推移被接收,并且我们有时间信息的处理,我们参考时间序列分类。时间序列数据样本是来自连续信号的实值变量的有序集合,可以是时间域或空间域。相互接近的变量往往在时间序列上高度相关。SPO (Cao et al., 2011)和INOS (Cao et al., 2013)方法提出了SMOTE在时间序列分类中的集成。INOS可以看作是SPO的扩展,通过对信号空间中的少数类进行过采样来解决不平衡学习问题。通过估计和保持可靠特征子空间中的主协方差结构以及固定不可靠特征谱,使用混合技术来生成合成实例。
第三类技术被称为短时标、短时标和短时标(莫尼斯等人,2016),也是为时间序列设计的,但用于回归。
监督学习的一个重要限制是很难获得足够的标记数据来训练预测模型。在一个完美的情况下,我们希望使用具有所有类的良好表示的不同标记数据来训练分类器。然而,在许多实际应用中,存在着大量的未标记数据,获取有代表性的子集是一个复杂的过程。主动学习通过识别要标记的信息量最大的数据,逐步产生训练数据。当涉及到外部监督(人或其他系统)时,我们指的是真正的主动学习,即选择新的例子,然后由专家进行标记。如果不是这种情况,我们参考半监督分类,它利用未标记的数据来提高预测性能,修改从标记的例子中获得的学习假设。不同的视角被用来处理半监督分类,如自我训练,基于图的方法,生成模型等(Zhu, Goldberg, Brachman, & Dietterich, 2009)。
基于SMOTE的几种方法已经被开发用于这种学习范例:
VIRTUAL (Ertekin, 2013)是为主动学习问题和支持向量机设计的,它自适应地从每个主动学习步骤中选择的真实的正支持向量创建实例。
INNO (Li et al., 2013a)是一种用于基于图的半监督学习的技术,并且执行迭代搜索以围绕已知的标记样本生成一些未标记样本。
GS4 (Moutafis & Kakadiaris, 2014) SEG-SSC (Triguero et al., 2015) and OCHS-SSC(Dong et al., 2016) 生成合成示例,以减少因缺少标记示例而产生的缺陷。检验了几种学习技术,并利用了标记样本和合成样本之间的公共隐藏空间等特性。
Park等人(2014)提出的技术是一种半监督主动学习方法,其中使用聚类算法增量获取和应用标签.
虽然最初的SMOTE技术可以通过将少数类与其余类进行比较来应用于多类问题(一对一方法),但也有一些专门用于处理多类不平衡分类问题的扩展(Wang & Yao, 2012):费尔南德斯-纳瓦罗等人(2011)、阿莱霍等人(2015)和阿卜迪和哈希米(2016)的工作。
在多实例学习中,数据的结构比单实例学习更复杂(Dietterich, Lathrop, & Lozano-Pérez, 1997; Herrera et al., 2016b)。在这里,学习样本被称为包。这个范例的主要特征是一个包与多个实例或描述相关联。每个实例都用一个特征向量来描述,就像单实例学习一样,但是相关的输出是未知的。一个实例,除了它的特征值,只知道它与一个包的成员关系。
已经提出了基于SMOTE的几个想法来解决多实例学习。第一类是Instance-SMOTE和Bag-SMOTE(王等,2013)。实例移动算法在每个包中创建合成的少数实例,而不创建新的包。此外,Bag-SMOTE用新实例创造了新的合成小众包。在梅拉、奥罗兹科-阿尔扎特和布兰奇(2014)的工作中,以及在梅拉、阿里埃塔、奥罗兹科-阿尔扎特和布兰奇(2015)的工作中,信息包-SMOTE技术得到了展示和改进。它使用负总体模型来寻找少数民族类中要过采样的最佳实例。创造的新合成袋支持少数民族阶层的目标概念。
在多标签分类中(Herrera et al., 2016a),数据的每个实例都与一个输出向量相关联,而不是仅与一个值相关联。根据数据集中不同标签的数量,该向量具有固定的大小。该向量由基于二进制值的元素组成,这些元素指示相应的标签是否与实例兼容。当然,几个标签可以同时活动,显示不同的标签组合,这就是所谓的标签集。
MLSMOTE (Charte et al., 2015) 是专为多标签分类设计的SMOTE最受欢迎的扩展。其目标是产生与少数民族标签相关的合成实例。标签集中少数标签的子集由两个建议的度量来标识。合成示例的输入特征是使用SMOTE获得的,但是这些新实例的标签集也是从最近的邻居收集的,利用了邻居中的标签相关信息。
回归任务将输出变量视为连续的,因此,这些值用实数表示。与标准分类不同,它们是有序的。回归任务的不平衡学习对应是对连续目标变量罕见极值的正确预测。在Torgo等人(2015年)的工作中,几种重采样技术被成功应用于回归。其中,SMOTER是基于SMOTE的过采样回归的贡献。SMOTER使用用户定义的阈值将罕见情况定义为极端高值和低值,将两种类型作为单独的情况处理。另一个主要区别是新案例目标值的生成方式,其中使用了两个种子案例之间的加权平均值。在莫尼斯等人(2016年)的研究中,SMOTER被扩展到处理时间序列预测。这里从SMOTER衍生出三种方法:SM B,SM T,SM TPhi。它们考虑了时间序列的箱的特征,并管理时间和相关性偏差。
序数回归(或分类)问题介于标准分类和回归之间。输出变量的类别之间存在预定义的顺序,但是两个连续类别之间的距离是未知的。因此,根据实际类别和预测类别之间的差异,误分类错误的惩罚可以更大或更小。在处理实际应用程序时,类的不平衡情况在这类域中可能很常见。在佩雷斯-奥尔蒂斯等人(2015年)进行的研究中,从基于图形的角度来看,过采样的方法被用来平衡序数信息。提出了三种发电方案,即OGO-北爱尔兰、OGO-ISP、OGO-SP;根据类内边的使用,构建图的最短路径和内部最短路径。
已应用SMOTE变体的其他问题如下:
不精确数据集的不平衡分类。这个问题指的是数据中模糊的存在,阻止了类的值被精确地知道。SMOTE-LQD (Palacios et al., 2012)是适用于这种环境的SMOTE的通用版本。它提供了少数实例的选择,假设不平衡率不是精确已知的,并且最近邻居的计算和合成实例的生成是用模糊算术运算符来执行的。
图像检索和图像的语义搜索是当今一个具有挑战性的问题。在Piras和Giacinto (2012)的工作中,作者提出了一种技术,通过根据最近邻信息生成合成模式来解决图像检索任务中的不平衡问题。
在生物信息学问题中,通常会出现高维分类问题。在布劳格斯和苏露莎(2013)的工作中,SMOTE在理论和经验两方面都得到了验证。在得出的结论中,最重要的是SMOTE对大多数基于高维数据训练的分类器几乎没有任何影响。其他技术,如欠采样,在高感光度设置下可能更好。
Iglesias等人(2013)提出了一种基于文档内容的SMOTE变体来管理文本分类中的类不平衡问题。这种被称为隐马尔可夫模型的方法结合了隐马尔可夫模型,该模型是用一个语料库训练的,以便根据当前的文档创建新的样本。
当在不平衡分类的情况下工作时,我们必须意识到偏斜的类分布不是性能下降的唯一缺点。相反,它与几个数据内在特征的结合是实现次优模型的原因(洛佩斯等人,2013年)。例如,如果这两个类尽管具有严重不平衡的数据分布,但在两个聚类或片段中很容易分离,那么任何分类器都很容易学会区分它们。当挑战变得深刻时,就像现实世界中的应用程序经常发生的那样,类被穿插在其中。
在本节中,我们将详细讨论其中的几个问题以及它们与SMOTE的关系。特别是,我们将首先研究与那些少数类表现为小分离的领域有关的问题(Orriols-Puig, Bernadó-Mansilla,Goldberg, Sastry, & Lanzi, 2009; Weiss & Provost, 2003),以及它们与缺乏数据(Raudys & Jain, 1991)和嘈杂实例(Seiffert, Khoshgoftaar, Hulse, &Folleco, 2014)的关系(第5.1节)。接下来,我们将考虑一个阻碍不平衡分类性能的问题,即重叠或类可分性(Garc´ ıa et al., 2008)(第5.2节)。此外,由于SMOTE应用插值程序在特征空间上生成新的合成数据,我们将分析维数灾难(Blagus& Lusa, 2013)以及插值过程的不同方面(第5.4节)。我们还必须考虑到,训练分区和测试分区之间的不同数据分布,即数据集偏移(Moreno-Torres, Sáez, & Herrera, 2012b),也会改变这些情况下结果的验证(第5.3节)。
最后,我们将考虑两个解决不平衡分类的重要新方案。一方面,我们关注实时处理,更具体地说是数据流不平衡分类(Nguyen, Cooper, & Kamei, 2011; Wang, Minku, & Yao,2013(5.5节)。接下来,我们分析了大数据的主题(Fernández, R´ ıo, López,Bawakid, del Jesus, Ben´ ıtez, & Herrera, 2014)和与倾斜的类分布相关的约束(R´ ıo, López, Ben´ ıtez, & Herrera, 2014)(第5.6节)。
当一些概念(不考虑它们的类别)被表示在小簇中时,我们指的是包含小析取的数据集(Orriols-Puig等人,2009;韦斯&普罗沃斯特,2003)。在不平衡类的情况下,这个问题经常发生,因为代表性不足的概念通常位于数据集的小区域。这种情况如图3所示,我们展示了两种情况。首先,图3a描绘了一个有着少数类小间断的人工生成的数据集,然后,图3b显示了纳皮尔拉、斯特凡诺夫斯基和维尔克(2010)的工作中产生的“亚克隆”问题,其中我们可以找到两个类的小析取:多数类样本相对于少数类样本在少数类矩形区域的中心区域代表不足,而少数类样本仅覆盖整个数据集的一小部分,并被置于负类内。
这种情况增加了寻找高质量解决方案的复杂性。这是由于标准学习模型的通用工作程序,其目的是获得良好的泛化能力。因此,大多数分类算法可能认为这些例子属于类噪声的范畴(Kubat & Matwin, 1997; Jo & Japkowicz, 2004),仅仅因为它们位于相反类的“安全区”。考虑到分类算法对噪声比不平衡更敏感(Seiffert et al., 2014),不同的过拟合管理技术通常被用来处理这个问题,即决策树的修剪。然而,如前所述,这可能会导致忽略正确的少数族裔群体的例子。
小析取问题在更大程度上影响了那些基于分治策略的学习算法。由于原始问题被分成不同的子集,在几次迭代中,这可能导致数据碎片化(Friedman, 1996)。这种行为的一些明显的例子是决策树(Rokach, 2016),以及众所周知的用于大数据应用程序的MapReduce编程模型(Dean & Ghemawat, 2008; Fernández et al., 2014)。
小样本量(缺乏数据)(Raudys & Jain, 1991)和小分离是两个密切相关的话题。这种协同是直接了当的,因为信息几乎不在那些小的间断中表现出来。因此,当没有足够的数据来表示问题的边界时,学习分类器不能进行良好的泛化(Jo & Japkowicz,2004; Wasikowski & Chen, 2010)。这样,小的间断、有噪声的数据和缺乏数据是三个相互关联的问题,它们构成了不平衡分类中对研究团体的挑战。
基于实例复制的简单过采样方法不能很好地处理这种数据内在问题。相反,基于SMOTE的算法隐含地考虑了一种抵消类不平衡和小析取的机制。通过在相近的示例之间创建新的实例,可以增强集群中的表示。SMOTE良好行为的前提与这样一个事实有关,即应该在该区域内选择最近的示例。当然,这取决于组成小析取的元素数量和为过采样选择的K值。此外,如果具有小间断的聚类也包含相反类的任何例子,即重叠,SMOTE将不能纠正类内不平衡的问题。这是使用SMOTE杂交和清洁技术的主要原因。
幸运的是,正如3.2节所介绍的,有几个SMOTE扩展试图分析这些数据集群。通过这种方式,基于局部密度和SMOTE的基于聚类的方法受到了高度关注,原因有二。一方面,他们关注那些真正需要实例生成的领域,即那些缺乏代表性的领域。另一方面,它们避免了过度泛化问题,增加了少数类核上的例子密度,使它们远离质心稀疏。最后,最近的研究表明,改变问题的表现形式,即考虑数据之间的成对差异(Pekalska & Duin, 2005)可能会以某种方式克服小分离问题(Garc´ ıa,Sánchez, de J. Ochoa Dom´ ınguez, & Cleofas-Sánchez, 2015)。然而,我们必须指出,找到这样的类区域的问题仍然远远没有得到适当的解决,因为前面描述的大多数聚类技术做出了几个简化的假设来解决实际的复杂分布问题。
另一种方法是应用预处理模型的协同作用,即过滤和/或实例生成,以去除那些在SMOTE应用之前实际上有噪声的实例(Sáez et al., 2015; Verbiest, Ramentol, Cornelis, & Herrera, 2014)。一些研究表明,简单的欠采样技术,如随机欠采样和清洁技术,对于不同水平的噪声和不平衡是稳健的(Seiffert et al.,2014)。这样,过滤技术和SMOTE之间的许多混合方法已经发展到目前为止,因为这允许改进数据的质量,或者先验地(从原始数据)、后验地(从预处理数据)或者迭代地同时创建新的合成实例。
Boosting算法和SMOTE之间的合作可以成功地解决小析取问题。这些学习算法是迭代的,随着过程的发展,它们动态地对数据实例应用不同的权重(Schapire,1999。)具体来说,错误分类的实例的权重会增加,因此在后续步骤中,生成的模型会关注它们。因为已知小分离中的实例难以预测,所以有理由相信提升将提高它们的分类性能。根据这一想法,已经开发了许多方法来修改标准的提升权重更新机制,以提高少数类和小析取的性能(Galar,Fernández,Barrenechea,Bustince & Herrera,2011),并且在第3.3节中提到了那些涉及SMOTE导数的方法。然而,我们必须考虑到,如果几个数据内在特征(重叠、小分离、噪声等)在同一个问题中收敛,即使集成学习算法也会发现很难进行适当的类别区分。
在所有数据的内在特征中,类别之间的重叠可能是最有害的问题(Garc ´ ıa et al., 2008)。它被定义为数据空间中类的表示相似的那些区域。这种情况导致在这个重叠的区域中发展出一个具有几乎相同先验概率的推论,这使得很难甚至不可能区分这两个类别。事实上,任何“线性可分”的问题都可以用简单的分类器来解决,而不管类别分布如何(Prati & Batista, 2004)。
重叠和班级不平衡的普遍存在意味着对学习模式的更大限制。Luengo等人(2011年)进行的研究指出了这个问题,在该研究中,作者描述了几个数据集的性能,这些数据集根据不同的数据复杂性度量进行排序,以搜索一些有趣的好的或坏的行为区域。这项工作的结果表明,与不平衡率相比,衡量类别之间重叠的指标可以更好地表征最终获得的精度。
计算给定数据集重叠程度的最广泛使用的度量是最大费希尔判别比,或简称为F1 (Ho & Basu, 2002)(不得与F1分数性能度量混淆)。它是针对每个单独的特征(一维)获得的: f = ( ( u 1 − u 2 ) 2 θ 1 2 + θ 2 2 ) f=(\frac{(u_1-u_2)^2}{\theta_1^2+\theta_2^2}) f=(θ12+θ22(u1−u2)2), u 1 u_1 u1, u 2 u_2 u2, θ 1 2 \theta_1^2 θ12, θ 2 2 \theta_2^2 θ22分别为两类的均值和方差。最后,获得F1作为所有特征的最大值。
F1度量值较小的数据集将具有高度的重叠。图4至7显示了这种行为的一个说明性例子,它是用合成数据构建的,使用了[0.0;1.0]和两个类。
重叠区域与“边界实例”的概念直接相关(Napierala et al., 2010)。顾名思义,这些实例被定义为位于少数和多数阶级重叠的阶级边界周围的那些实例。主要问题是再次试图确定这些例子是简单的噪音还是代表有用的信息。因此,对于给定的问题,能够在不同类型的实例之间进行识别是特别重要的,即线性可分的、边界线的和重叠的数据(Vorraboot,Rasmequan,Chinnasarn & Lursinsap,2015)。通过这种方式,我们将能够丢弃“误导性”的实例,并专注于那些难以区分的领域,执行一个知情的过采样过程。因此,在这种情况下,可以遵循类似于在小析取中使用的过程,即结合过滤技术、聚类和分析每个实例的邻域来确定它们对问题的实际贡献。
此外,特征选择或特征加权可以与SMOTE预处理相结合(Mart n-félez & Mollineda,2010;?).在这个意义上,SMOTE预处理将处理类分布和小析取(“红外部分”),特征预处理以某种方式降低重叠程度(“F1部分”)。最近的一种方法提出了SMOTE与特征和实例选择之间的协同作用(费尔南德斯,卡莫纳,德尔·热苏斯和埃雷拉,2017)。这种新方法的基础与以前的方法相似,但它不是学习一个单一的解决方案,而是提供一个多目标进化算法(Zhou, Qu, Li, Zhao, Suganthan, & Zhangd, 2011),以实现不同训练集下的不同分类器集,即考虑不同的特征和实例。关键是在问题的不同区域专门化几个分类器,产生一个健壮的集成方案。
数据集转换问题(Moreno-Torres, Raeder, Alaiz-Rodriguez, Chawla, & Herrera,2012a)被定义为训练和测试数据遵循不同分布的情况。数据集转换有三种潜在类型:
先验概率偏移:当训练集和测试集之间的类分布不同时(Storkey,2009)。这种情况可以通过应用分层交叉验证方案来直接解决,以便在两个集合中表示每个类相同数量的实例。
协变量移位:当输入属性值在训练集和测试集之间具有不同的分布时(Shimodaira, 2000)。这个问题的发生主要取决于为验证目的而对数据进行的划分。这项任务最广泛使用的程序,分层的k折叠交叉验证,可能会导致这种类型的诱导数据集移动,因为实例在不同的折叠之间随机混合。
概念转变:当输入和类变量之间的关系发生变化时(Yamazaki, Kawanabe, Watanabe, Sugiyama, & M¨ uller, 2007)。这是不同类型数据集转换中最大的挑战。在专门的文献中,它通常被称为“概念漂移”(Webb, Hyde, Cao, Nguyen, &Petitjean, 2016)。
如上所述,数据集转换包括一个普遍和常见的问题,可以影响所有类型的分类问题。换句话说,它不是与数据流或实时处理内在相关的条件。特别是,在不平衡的领域,这个问题可能特别敏感,因为少数群体的例子很少(Moreno-Torres & Herrera, 2010)。在最极端的情况下,少数类的一个错误分类的例子会导致性能的显著下降。
在协变量移位的情况下,有必要将SMOTE过采样技术与适当的验证技术相结合。特别是,我们可能会在莫雷诺-托雷斯等人(2012年b)的工作中发现一种新的方法,这种方法不会对这个问题产生偏见。命名为多布-SCV,这种划分策略的目的是给不同的褶皱指定近旁的例子,这样每个褶皱将有足够的每个区域的代表。洛佩兹、费尔南德斯和埃雷拉(2014)考虑了在不平衡分类的情况下使用前一种方法,他们发现这是一种稳定的性能估计器。避免每个文件夹中不同的数据分布将允许不平衡数据的研究人员集中精力设计仅基于偏斜数据的新学习模型,而不是在试图克服训练和测试结果之间的差距时寻求复杂的解决方案。
最后,关于概念转变,必须应用更复杂的解决方案。正如我们在第4.1节中提到的,Ditzler和Polikar (2013)将SMOTE预处理集成到一种新的集成增强方法中,该方法根据实例在每个时间步长的分布在实例之间应用分布权重。
具有大量属性的分类问题意味着对最终模型的正确开发的重大障碍。首先,由于大多数学习方法都考虑了整个特征空间来构建系统,因此很难找到真正的最优解。第二,因为这些属性的类之间有重叠,这可能导致过度拟合,正如前面指出的。
除了前者之外,我们必须考虑到维度问题也导致了傲慢现象(Radovanovic, Nanopoulos, & Ivanovic, 2010),定义为成为大多数观察到的最近邻居的少量点。在SMOTE程序的情况下,由于两个相互关联的原因,这影响了新合成实例的质量(Blagus & Lusa, 2013)。一方面,邻域的计算变得偏向实际邻域。另一方面,新创建的实例的差异变得更大。
克服这个问题的一种方法是预测和纠正有害的中心点出现,例如使用基于朴素贝叶斯的方法来避免边界示例和异常值(Tomasev & Mladenic, 2013)。另一个更简单的解决方案是在应用SMOTE过采样之前使用特征选择方法,如在几个著作中所建议的Lin & Chen, 2013; Yin & Gai, 2015)。一些研究还表明,k-NN分类器从这种协同中获得了更高的收益(Blagus &
Lusa, 2013)。然而,我们可能会发现作者遵循相反程序的其他作品,即他们首先重新平衡数据,然后应用特征选择方案(高,科斯富塔和沃尔德,Gao,
Khosgoftaar, & Wald, 2014a; Lachheta & Bawa, 2016),也取得了很好的效果。
不同插值机制的使用可以为这个问题提供一些有趣的见解。此外,需要给新的合成实例增加更多的可变性,这可以通过部分外推法来实现。因此,概括将是积极的偏见,导致更好地覆盖“可能稀疏”的少数类样本。
另一个获得更多相关合成实例的有趣视角是分析不同的距离度量以获得最近邻居。一个例子是马拉纳霍比斯距离,它产生了一个椭圆形的影响区域,可能更适合重叠的情况(Abdi & Hashemi, 2016)。基于概率分布和强偏斜不敏感的海灵格距离度量也已经被应用于不平衡学习的环境中,尽管更侧重于特征选择(Yin, Ge, Xiao, Wang,& Quan, 2013)。最后,我们必须考虑混合属性的情况,其中诸如HOEM或HVDM的度量是强制性的,以便找到邻居实例(Wilson &Martinez, 1997)。
最后,通过特征提取将问题转化到低维空间是解决这个问题的另一种方法。当在应用SMOTE之前执行该过程时,该变换数据集的新聚类可以允许更好地生成实例(Xie et al., 2015)。它也可以在数据集重新平衡后应用(Hamid,Sugumaran, & Journaux, 2016)。在后一种情况下,建议进行特征提取,以便更好地学习分类器。
正如本文所报道的,不平衡分类的问题通常集中在静态数据集上。然而,在大量的应用程序中,数据不断到达,并且查询必须实时回答。我们指的是从数据流中在线学习分类器的主题(Last,2002)。在这种情况下,不均匀分布的例子出现在许多案例研究中,如视频监控(Radtke, Granger, Sabourin, & Gorodnichy, 2014)或故障检测(Wang,Minku,& Yao,2013b)。与这个问题相关的问题是,它需要一种机制来强化代表性不足的阶级概念,以提供高的整体绩效(Wang et al., 2013)。
除了前者之外,问题本身的动力结构也隐含着对不稳定的类概念的管理,即概念漂移(Wang, Minku, Ghezzi,Caltabiano, Ti˜ no, & Yao, 2013a)。为此,已经从预处理的角度提出了几种方法来处理这两种障碍(Nguyen et al., 2011; He &Chen, 2011; Wang, Minku, & Yao, 2015),特别是使用SMOTE (Ditzler & Polikar,2013),和/或通过分类器集成的成本敏感学习(Mirza, Lin, & Liu, 2015;Ghazikhani, Monsefi, & Sadoghi Yazdi, 2013; Pan, Wu, Zhu, & Zhang, 2015)。
SMOTE对这个框架的适应并不简单。开窗过程意味着只有全部数据的子集被馈送到预处理算法,从而限制了生成数据的质量。但是,如果我们甚至可以存储数据的历史,从数据和类分布的角度来看,概念漂移的问题会降低可以实现的最佳性能。因此,应该计算生成的合成实例与新引入的少数类实例之间的相关性。在发现高差异的情况下,必须执行更新过程。
大数据主题的意义与知识提取对这类问题的巨大优势有关,这些问题体积大、速度快、种类多(Fernández et al., 2014; Zikopoulos, Eaton, deRoos, Deutsch, & Lapis, 2011)。
这意味着需要一个新的框架,允许传统学习方法的可伸缩性。这个框架就是MapReduce (Dean & Ghemawat, 2008)及其开源实现(Hadoop-MapReduce)。这种新的执行模式以容错的方式执行“分而治之”的分布式过程,以适应商用硬件。为了允许计算算法嵌入到这个框架中,程序员必须实现两个简单的功能,即映射和减少。一般而言,地图任务致力于处理原始数据的子集并产生部分结果。减少任务将地图的输出作为输入(所有地图必须共享相同的“关键”信息),并执行融合或聚合过程。
目前,关于大数据问题不平衡分类的研究很少(费尔南德斯等人,2017年)。在所有的研究中,我们必须首先强调由若昂等人(2014年)进行的研究,在该研究中,SMOTE对大数据的第一次适应被适应于MapReduce工作流。具体来说,每个地图任务负责其数据块的数据生成,而唯一的缩减阶段将前者的输出结合起来,以提供单个平衡数据集。我们也可能发现MapReduce的一些SMOTE扩展,第一个基于邻域粗糙集理论(胡和李,2013;胡,李,楼,&戴,2014),和后者关于集成学习和数据重采样(翟,张,&王,2017)。然而,这些工作都不是真正的大数据解决方案,因为它们的可扩展性有限。最后,古铁雷斯、拉斯特拉、贝尼特斯和埃雷拉(2017)提出了一种基于图形处理单元(GPU)并行计算SMOTE的新方法。预处理技术通过智能使用主存储器(即仅包括少数类实例)和通过kNN算法的快速GPU实现的邻域计算来适应商品硬件(Gutierrez,Lastra,Bacardit,Benitez,& Herrera,2016)。
关于这个主题的工作如此之少的原因之一可能是由于与标准解决方案适应MapReduce编程风格相关的技术困难。关于这一问题,重点是在MapReduce中开发和采用全局和精确的并行技术(Ram rez-Gallego,Fernández,García,陈,& Herrera,2018)。以SMOTE为重点,考虑到所有的少数类实例都应该被考虑用于该任务,该问题主要与快速和精确的kNN方法的使用有关。
此外,使用带GPU的流处理器不是一个简单的解决方案。程序员的技术能力,加上图形处理器实现的内存和数据结构的限制,意味着一个重大的挑战。最后,我们还必须考虑是否有合适的硬件设备用于此类大数据的实验研究。
我们还必须指出,为克服可伸缩性问题而应用的数据重新分区意味着额外的复杂性来源。我们必须记住数据的缺乏和小的分离(乔&贾普科维茨,2004;Wasikowski &陈,2010),在这种情况下可能会变得更加严重。正如我们已经指出的,这些问题对SMOTE算法的行为有很大的影响。与大数据问题中的随机过采样和随机欠采样等更简单的技术相比,SMOTE的低性能可能是一个突出的问题(费尔南德斯等人,2017年)。这一事实意味着有必要对数据生成过程进行彻底的设计,以提高新合成实例的质量。此外,建议针对最终的简化任务,研究与模型融合或集成系统管理相关的不同可能性。
在SMOTE算法诞生15周年之际,本文提出了一种最先进的SMOTE算法,以庆祝其丰富的研究和发展。它提供了对SMOTE的变化的总结性分析,该分析是针对在原始思想上检测到的不同缺陷的改进及其在更复杂的预测问题上的潜在应用而设计的,例如流数据、半监督学习、多实例和多标签学习和回归。在当前概述的挑战背景下,我们强调需要加强对小分离、噪声、缺乏数据、重叠、数据集移位和维数灾难的处理。为此,必须进一步深入分析SMOTE关于这些数据特征的理论性质及其与新合成实例的关系。最后,我们还认为,在大数据和实时处理的框架内,关注数据采样和预处理方法(如SMOTE及其扩展)非常重要。
遵循SMOTE启发的基于人工生成数据的类似过采样策略的更精细的数据预处理方法的新领域的开发和应用仍然是未来15年的一个棘手问题。为了激发这一目的,我们希望为初学者和研究人员提供一个有价值的概述,无论是在数据挖掘的任何角度,特别是在不平衡学习的情况下。