自20世纪90年代末,研究人员开始注意到类别不平衡问题起,已有多种学习技术被开发并用于解决此问题,主要包括以下几种。
样本采样技术
样本采样,也称数据层处理方法,顾名思义,即通过增加少数类样本或减少多数类样本的方式来获得相对平衡的训练集,以解决类别不平衡问题。增加少数类样本的方法被称为过采样(Oversampling),而减少多数类样本的方法则被称为降采样或欠采样(Undersampling)。以前文中的不平衡数据集为例,下图分别给出了该数据集在经过降采样与过采样处理后的样本分布情况。
随机过采样(Random Over-sampling, ROS)与随机降采样(Random Under-sampling, RUS)是最简单也是最为常用的样本采样技术。但二者均有其各自的缺点,其中,前者会增加分类器训练的时空开销,并易于产生分类器过适应的现象,而后者则会造成分类信息严重缺失,从而导致分类性能显著下降。
为克服随机采样的缺点,Chawla等人于2002年提出了一种新的过采样方法:少数类合成过采样技术(Synthetic Minority Oversampling Technique, SMOTE)。不同于随机过采样方法,SMOTE通过在两个邻近的少数类样本间插入虚拟样本,有效解决了ROS方法易于陷入过适应的问题。Han等人则发现大多数被错分的样本通常都分布在两类的分界线附近,故其对SMOTE算法进行了改进,分别提出了BSO1和BSO2两种算法。BSO1算法只在那些靠近边界线的少数类样本上执行SMOTE算法,而BSO2算法则在靠近边界线的少数类与多数类样本上共同执行SMOTE算法。另一种改进方法称为单边选择(One Side Selection, OSS),其与BSO2算法的思想十分相似,它通过清除多数类中的噪声样本、冗余样本和边界样本的方式使其决策区域得到有效收缩。另一个较为著名的采样方法是ADA-SYN算法,其可根据样本的分布密度对生成伪样本的数量进行自动决策。Yen和Lee所提出的SBC方法则借鉴了聚类的思想,其可自动决定在每一类簇中移除多少个多数类样本。
除此之外,近几年一些更为高级的采样算法也陆续被提出,如Yu等人提出的ACO Sampling算法便利用了蚁群优化搜索算法来考查多数类样本的信息含量与重要度,从而在降采样时最大限度地保留信息量大的多数类样本;Zhang和Li提出了基于随机游走的过采样方法,该方法的优点在于新生成的训练集在每一个特征上仍符合原始训练集的均值与方差,保留了原始的样本分布信息;Das等人从保留少数类样本原始概率分布密度的角度入手,提出了两种过采样方法:RACOG和wRACOG,获得了比传统过采样方法更优的性能。
可以说,样本采样是一种行之有效的类别不平衡学习技术。该技术的最大优点在于:采样过程与分类器的训练过程是相互独立的,故其更具通用性。
代价敏感学习技术
代价敏感学习也是用于解决类别不平衡问题的常用技术之一。与样本采样技术直接通过增删样本来改变样本分布的做法不同,代价敏感学习技术改变了分类器的训练原则,不再追求训练误差最小化,转而以整体误分代价最小化为训练目标,即在训练时,为少数类样本的训练误差施以较大的惩罚,而为多数类的训练误差施以相对小的惩罚。至于具体的惩罚系数,需要以代价矩阵的形式给出。仍以前文中的不平衡数据集为例,下图给出了其对应的代价敏感加权示意图。从该图中不难看出,少数类样本的权重被成比例地放大了,则可以预见处于两类样本重叠区域的部分少数类样本能被正确分类。
代价敏感学习的实质是将代价矩阵与传统的分类器模型相融合,以达到修正分类面的目的,故其是一种分类器层的学习方法。在代价敏感学习家族中,融合的方式多种多样,如朴素贝叶斯分类器通过原始后验概率与代价系数的乘积来计算修正的后验概率,从而改变决策的分布,决策树算法则通常将代价的概念考虑进了其训练的全过程,包括属性的选择与剪枝,支持向量机与极限学习机则直接对其惩罚因子进行代价加权,使训练的分类器可直接适应样本的不平衡分布。传统的代价敏感学习算法对代价矩阵均有较强的依赖性,这就易于造成一个较严重的问题:**同类样本的误分代价均相同,而没有考虑其在特征空间的位置信息,故分类性能的提升空间仍较大。**解决上述问题的方式主要有以下两种:
- 挖掘样本的先验分布信息并对其进行量化,进而设计对应的模糊代价加权矩阵。
- 将分类器与Boosting集成学习模型相结合,通过不断调整各样本的代价权重来提升分类器的泛化性能
与样本采样技术相比,代价敏感学习技术尽管在构造机理上可能更加复杂,但该技术要更为灵活,且在很多特定分类任务上,其性能往往更优。
决策输出补偿技术
决策输出补偿技术也可以被看做是一种分类器层的学习方法,它通过直接为最终的决策输出做正补偿的方式来修正原本偏倚的分类决策面,其实质就是对分类面向负类区域做平移处理。下图展示了此类技术的基本原理,其中原始分类面与修正分类面之间的距离即为决策输出的补偿值。
Zhou等人在其工作中,最早探究了此类技术的可行性。他们将反向传播神经网络的输出限定在
[
0
,
1
]
[0,1]
[0,1]之间,并在训练后对输出值做归一化处理,然后在归一化的输出上乘以不同的阈值,以达到平移分类面的目的。上述方法的缺点在于阈值是通过经验而设定的,并不能保证移动的位置最优。Lin和Chen提出了一种基于支持向量机的决策输出补偿算法,补偿值由多数类及少数类的样本规模共同决定,其缺点仍在于决策输出补偿值的经验性。为此,Yu等人在其基础上进行了改进,考虑了训练集中样本先验分布信息的作用,通过对分类面各候选位进行比较,从而可自适应地确定最优的决策输出补偿值,以求分类性能达到最大化。在上述工作基础上,Yu等人又对基于极限学习机的决策输出补偿策略进行了研究,提出了ODOC-ELM算法,该算法分别采用黄金分割优化搜索算法与粒子群优化搜索算法来求解二类不平衡及多类不平衡问题中的最优决策输出补偿值,得到了较优的性能。
决策输出补偿也是一种有效的类别不平衡学习技术,其优点在于确定补偿值的过程与分类器的训练过程是相互独立的,而难点在于最优补偿值不易确定,且即使能够确定,也只能保证分类面做平行移动,而无法改变其方向,故其性能提升的程度是十分有限的。
集成学习技术
众所周知,集成学习一直是近年来机器学习领域的研究热点之一,它可有效克服单一学习算法的性能局限,大幅提升学习器的泛化性能。近几年,该技术也已与类别不平衡学习技术进行了深度的融合,大量高效的算法被提出。最为经典的集成不平衡学习算法是Asymmetric Bagging(asBagging),该算法将随机降采样RUS技术与Bagging集成学习模型相结合,有效解决了RUS易于误删大信息量样本而导致的分类性能不稳定的问题。Sun等人提出了一种与asBagging算法相类似的集成学习算法,其首先将多数类样本随机无交叉地划分为多个子集,保证每个子集与少数类样本数大致相当,然后构建多个平衡训练子集,再进行集成。特别需要说明的是,在他们的实验中,主要对五种不同的集成决策规则进行了比较分析。Yu等人结合asBagging算法与特征子空间算法来分类高维不平衡的生物信息数据,取得了理想的效果。
作为集成学习家族的重要一员,Boosting学习模型也已被用于解决类别不平衡问题。Chawla等人将SMOTE方法与Boosting学习模型相结合,提出了SMOTE Boost方法,该方法沿用了传统Boosting算法样本加权的思想,但在加权前首先采用SMOTE算法对原始训练集进行了过采样处理。Seiffert等人则将Boosting算法与随机降采样方法相结合,提出了RUS Boost方法,发现其性能比SMOTE Boost更优。Liu等人结合随机降采样、Bagging与AdaBoost算法提出了两种集成学习方法:Easy Ensemble和Balance Cascade,这两种算法具有时间复杂度低、数据利用率高等优点。
随机森林也可被用于解决类别不平衡问题,其解决方案为:要么通过样本采样技术来构造平衡随机森林,要么通过代价敏感学习技术来构造加权随机森林。此外,众所周知,要想集成学习能发挥出最大作用,则要满足以下两个条件:
- 个体分类器要尽可能精确
- 个体分类器之间的差异要尽可能大
为此,Diez-Pastor等人特别在他们的研究工作中强调了保持个体分类器差异度的重要性。相比于单一技术,集成学习通常具有更高的分类准确率与更强的泛化性能,在解决类别不平衡问题时,集成学习已体现出了很明显的优势。但不可否认的是,一些集成学习算法仍存在时间复杂度过高的问题。因此,在实际应用中,要根据具体情况来判断是否应选用此技术。
主动学习技术
与集成学习一样,主动学习也是机器学习领域的重要分支之一。主动学习的核心思想在于:首先,由人类领域专家手动标注一些样本的类标作为初始训练集,并训练分类器;然后,根据某种样本选取策略在海量未标注样本中选出少量信息量大或不确定度高的样本,并提交给人类领域专家标注,以扩展训练集规模;最后,在扩展的训练集上重新训练分类器。重复上述过程,直到满足一个预设的停止条件为止。从上述过程不难看出,主动学习的优点在于:在不损失分类性能的前提下,可有效降低训练样本规模,从而减少样本标注工作中的时间、经济及人力成本。
Ertekin等人发现主动学习可有效缓解类别不平衡分布对分类器的负面影响。考虑一个不平衡比率较高的分类任务,若每类样本均近似符合高斯分布,则在两类样本的边界区域,即它们的重叠区域,样本的不平衡比率往往远低于整个训练集的不平衡比率。而对于主动学习算法而言,边界区域的样本往往含有最大的信息量,故其在主动学习的过程中被择出并标记的概率通常较大。如此一来,采用主动学习所选出的训练集通常并不会有很高的不平衡比率,其对分类器性能的危害也随之会大大降低。Ertekin等人在其工作中,采用支持向量机作为分类器,主动学习的每轮均选择最靠近分类超平面的样本进行标注,直至支持向量间隔内不再有未标注样本为止。此外,为了加快学习的进程,他们也提出了“59取样”原则,从而在时空复杂度与分类性能间实现折中。
既然主动学习可被用于解决类别不平衡问题,那么是不是就表明样本的类别不平衡分布对主动学习没有负面影响呢?答案显然是否定的,已有工作表明:当训练集的类别不平衡比率较高时,主动学习算法的性能仍会受到负面的影响。因此,有必要在主动学习的过程中,采取某些策略,如样本采样、代价加权等,来保证学习的公正性。
一类分类技术
与传统的分类技术不同,一类分类技术仅采用隶属于一个类别的样本来训练分类器,其通常被用于某种极端场景,即训练样本仅包含正常样本,而异常样本不可得的情况。该技术也已被用于解决极度不平衡分类问题,因为在此类问题上,传统的类不平衡学习方法通常不能取得较好的分类效果。目前,最为常用的一类分类器包括基于高斯概率密度估计的方法、基于Parzen窗的方法、自编码器法、基于聚类的方法、基于K近邻的方法、一类支持向量机、支持向量数据描述法及一类极限学习机等。无论哪种方法,都是用于刻画一个覆盖关系,从而更好地描述正常样本的分布,使之与异常样本区分开来。下图给出了一个一类分类器的示意图。从该图中不难看出,训练样本均属于同一类,一类分类技术就要找到一个覆盖模型来区分该类样本与未出现的异常样本。特别需要指出的是,为了保证分类器的泛化性能,可以允许一定比例的离群样本被误分。