简要介绍
本文主要介绍了一种基于数据预处理策略与套袋算法(Bagging)的用于解决不平衡数据的回归问题的方法,并采用由Torgo和Ribeiro(2009年)以及Ribeiro(2011年)提出的评估指标,验证了本文所提算法(REBAGG算法)在不用领域和学习算法中的压倒性优势。
研究背景
针对于不平衡数据集所提出的大多数解决方案都集中在类不平衡问题上,但其实回归、数据流或多标签等其他任务也存在不平衡数据这个问题,本文将讨论不平衡数据的回归任务。
提出的问题以及解决方案
不平衡数据领域中一个重要的挑战是,由于标准的学习器在通常情况下关注的是最常见的案例(而这些案例在不平衡问题中却是用户最不感兴趣的),无法关注罕见的、极端的案例。另一个挑战是,传统的模型性能评估指标,并不适合用于判断不平衡问题中模型的性能,有可能导致模型预期性能的错误结论。为了解决前者,一般采用四种方法用于解决不平衡问题:数据预处理、开发专门针对于不平衡数据的学习器、预测后再处理和混合方法。本文针对于数据预处理的方法进行扩展,即将数据预处理策略和套袋算法整合在一起。对于后者,本文依据Ribeiro在《Utility-based Regression》中提出的一种获取回归任务精确度和召回率的效用框架,使用适用于回归任务的F1作为主要评估指标。
不平衡回归任务的难点在于两个方面,1)用户关心或者感兴趣的的案例在原始数据集中代表性不足;2)目标变量是连续的,甚至是无限的。这两个方面共同作用导致了标准学习器无法关注用户感兴趣的情况。为了解决目标变量的重要性定义问题,Ribeiro在《Utility-based Regression》中提出了相关性函数的概念。该函数将变量域映射为一个相关性标度,其中1代表最大相关性,0代表最小相关性,并且还提出了一种自动获取该函数的方法。另外,还需要用户定义一个相关性阈值tR,以此将数据集D定义为两个互不相关的子集:稀有的和用户感兴趣的子集DR,正常的和用户不感兴趣的子集DN。其中,DR = {⟨x, y⟩ ∈ D : φ(y) ≥ tR } , DN = {⟨x, y⟩ ∈ D : φ(y) < tR }。
相关工作
本文的重点在于提出了一种基于数据预处理和套袋算法的不平衡数据回归问题的解法方法REBAGG。这是一种建立多个不同模型,并通过一定的聚合策略进行组合的集成算法。需要说明的是,这种集成算法本身是不能用来解决不平衡问题的,因为它无法克服每个单一模型的通病:只关注平均案例,而忽视罕见的、更重要的案例。但是,当它们与其他解决不平衡领域的策略相结合后,能够表现出比单一模型使用解决不平衡问题的策略要有更好的效果。
套袋算法(Bagging)
Bagging算法主要需要两个步骤:1)使用训练集的自举样本生成m个不同的模型;2)聚合模型预测的结果。
这里简述下Bagging的具体流程:每次从原始数据集中不放回地抽取k个样本(这里的不放回是指的每抽取一个样本都要放回),用某种重采样策略对这k个样本进行处理后,应用于训练的模型。反复执行m次获得m个不同的模型,在预测阶段聚合m个模型预测的结果。关于模型聚合策略,本文采用了简单的模型预测平均来获得最终预测结果。
重采样策略
由于集成算法是将选定的基础学习算法生成的不同假设组合在一起的方法,因此,要获得准确的集合,组成集合的模型必须具有多样性。本文提出了一种方法,可以在生成模型时获得多样性,同时偏向于罕见的、代表性最小的案例。
本文采用了四种适用于原始训练集的重采样策略: balance, balance.SMT, variation, and variation.SMT。对于有“balance”的策略,重采样后的训练集将具有相同数量的稀有和正常案例;对于有“variation”的策略,重采样后的训练集中稀有和正常案例的比例将有所不同(从5中可能的选择:1/3,2/5,1/2,3/5,2/3中随机选择一个比例)。这就让重采样后的训练集提供了更高的多样性,既可以是均衡的,也可以是有利于稀有或正常案例的。除此之外,对于有“SMT”的策略,本文使用SmoteR算法进行合成罕见案例(Torgo等人的《Smote for regression》提到的算法);对于没有“SMT”的策略,就通过使用随机抽取的稀有案例的副本获得。
以下图示来说明这个重采样的过程:
稀有案例和正常案例平衡的重采样:
稀有案例和正常案例比例不同的重采样:
实验结果
这里附上论文中实验涉及到的数据、实验代码和结果:https://github.com/paobranco/REBAGG