Paper Reading: SMOGN: a Pre-processing Approach for Imbalanced Regression


Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原文。

论文概况 详细
标题 《SMOGN: a Pre-processing Approach for Imbalanced Regression》
作者 Lu´ıs Torgo, Bartosz Krawczyk, Paula Branco, Nuno Moniz
发表会议 Proceedings of Machine Learning Research (PMLR)
发表年份 2017
论文影响 不平衡回归问题的 baseline 方法
论文代码 官方 R 语言实现(https://github.com/paobranco/SMOGN-LIDTA17)、Python smogn 库有实现(https://pypi.org/project/smogn/)

作者单位:
LIAAD-INESC TEC DCC-FCUP, University of Porto
Porto, Portugal

研究动机

不平衡学习是一个主要在分类任务上研究的问题,并已经取得了一定的研究成果。然而在其他预测问题中也会出现不平衡的情况,例如回归任务、数据流或时间序列预测,但是适合这些任务的新策略的探索仍然很少。与分类相比,回归中的不平衡问题呈现出更大的难度,因为在回归数据集中目标变量是连续的。

文章贡献

针对不平衡回归问题,本文提出了一种新方法称为 SMOGN。SMOGN 它结合了欠采样策略和两个过采样策略,使用 SmoteR 插值方法对更接近的样例进行插值,对距离较远的样本使用高斯噪声生成合成样本。实验数据表明,SMOGN 与其他方法相比具有优势,同时该方法对使用的学习器有不同的影响,对 RF 和 MARS 显示出更明显的优势。

本文方法

本文提出的 SMOGN 结合了随机欠采样、SmoteR 和高斯噪声,其关键思想是将两种策略结合起来生成合成样例,同时通过引入高斯噪声这一更保守的策略来限制 SmoteR 可能产生的风险,并增加合成样本的多样性。SMOGN 只会在 k 近邻度量上足够接近时才会用 SmoteR 生成新的合成样本,当两个样本距离较远时 SMOGN 会引入高斯噪声。SMOGN 提出的思路主要有 2 点:

  1. 限制使用 SmoteR 时产生的风险,SmoteR 不会在插值过程中使用距离较远的样本;
  2. 允许在罕见情况下扩展决策边界,提高泛化能力,但引入高斯噪声后,泛化能力更难实现。

SMOGN 的工作流程如下伪代码所示,SMOGN 首先根据目标变量值构建包含连续示例的数据分区。这些分区被聚集成两种类型:罕见且重要的分区 BinsR、常见且不太重要的分区 BinsN,BinsN 中包含低于阈值的具有较低的相关性的样本。对于 BinsN 中包含的分区,SMOGN 应用随机欠采样过程进行处理,BinsR 中的分区使用过采样进行处理。根据选择的样本与 k 近邻样本之间的距离,过采样将使用 SmoteR 或引入高斯噪声策略来产生合成样本。主要思想是:如果选择的近邻样本是“安全的”就是用 SmoteR 生产合成样本,如果近邻样本不在安全范围内就不能用来进行插值,此时将通过引入高斯噪声来生成一个新的样本。用于确定安全或不安全的距离的阈值取决于样本与分区中所有剩余样本之间的距离,设置为该距离的中位数的一半。

下图展示了一个样本的 5 个最近邻居的合成样本示例,其中样本有些位于安全距离内或不安全距离内。用圆圈标注的样本来自 BinsR,用十字标注的样本来自 BinsN。由此可见,属于 BinsN 的样本更有可能与 BinsR 的样本在一个不安全的距离上重叠。

实验结果

数据集和实验设置

实验使用了 20 个不平衡回归数据集,基本信息如下表所示,所有数据集的相关性阈值设置为 0.8。

使用的学习器有 4 种,包括:MARS、SVM、RF 和神经网络(NNET),这些算法的参数设置如下表所示,将 28 种学习器(8 种 MARS + 6 种 SVM + 6 种 RF + 8 种 NNET)在所有数据集上运行。

使用 5 种不同的重采样方法,包括:不进行采样、随机欠采样、SmoteR、高斯噪声(GN)、SMOGN,共有 2800 个组合(28×20×5)。除随机欠采样策略只能减小数据集大小外,所有重采样策略的目标都是平衡罕见和常见样本的数量,并大致保持每个数据集中的样例总数相同。实验指标使用 F1,运行 2 次 10 折交叉验证得出结果,并按照显著性水平为 95% 进行假设检验。

对比实验

实验结果如以下三张图所示,图中显示了通过 F1 的假设检验结果,不同的图中只改变了进行比较的 baseline 方法。SVM 和 RF 学习器共进行了 120 次(20 个数据集 × 6 个学习器变量)比较,MARS 和 NNET 学习器共进行了 160 次(20 个数据集 × 8 个学习器变量)比较。可见 SMOGN 的性能与 SmoteR 和高斯噪声相当,但是在不同的学习器上的结果有明显的差异。
在 MARS 和 RF 上 SMOGN 具有更好的结果,在 SVM 上 SMOGN 的性能较差,在 NNET 上 SMOGN 的性能和 SmoteR、高斯噪声相当。



以下三张图显示了分别使用原始数据集(None)、SmoteR 算法(SMT)和高斯噪声策略(GN)测试的重采样策略,通过假设检验获得的汇总结果。每种重采样策略与 baseline 进行了 560 次(20 个数据集 × 28 个学习器)的比较,结果表明 SMOGN 算法在整体性能上具有优势。SMOGN 算法得到的结果接近于 SmoteR 和高斯噪声,本文认为这种情况是因为 SMOGN 算法是为了处理某些数据特征而可能发生的特定问题而构建的。当这些问题不存在时,本文方法的性能将与其他方法接近,因此 SMOGN 在包含不同区域的特征空间的数据集上的性能可能更好。

pre 和 recall 的分析

为了更好地理解 F1 结果,实验对 pre 和 reccall 指标进行了简要分析。使用原始不平衡数据集的 baseline 实验结果如下两张图所示,可见 SMOGN 方法的性能与其他方法相似。

使用高斯噪声后的 baseline 实验结果如下两张图所示,结果表明随机欠采样方法对 prec 的性能很差。除了使用原始数据集外,所有方法都显示出较小的显著优势。在 recall 上与不应用任何重采样的策略相比,所有预处理方法都显示出更高的优势。这说明了在不平衡回归背景下,使用的预处理方法以降低 pre 为代价获得了更高的 recall。

使用 SmoteR 后的 baseline 实验结果如下两张图所示,这组数据也显示了同样的趋势。当考虑将 SmoteR 或高斯噪声方法作为 baseline 时,与其他方法相比随机欠采样方法通常在 pre 度量上的优势更小,但是对于 recall 该方法具有类似的性能。当使用 SmoteR 作为基准时,SMOGN 在 prec 和 recall 上的性能更加突出。

posted @ 2024-02-26 18:20  乌漆WhiteMoon  阅读(281)  评论(0编辑  收藏  举报