首页 > 其他分享 >Paper Reading: SMOTE for Regression

Paper Reading: SMOTE for Regression

时间:2024-02-25 21:48:30浏览次数:15  
标签:采样 SMOTE 回归 样本 目标值 Paper relevance Reading Regression

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

论文概况 详细
标题 《SMOTE for Regression》
会议 Lu´ıs Torgo, Rita P. Ribeiro, Bernhard Pfahringer, and Paula Branco
发表期刊 Portuguese Conference on Artificial Intelligence (EPIA)
发表年份 2013
论文影响 对不平衡回归问题提出一种 SMOTE 的变体来
论文代码 R 语言 UBL 库、Python smogn 库有实现(https://pypi.org/project/smogn/)

作者单位:

  1. LIAAD-INESC TEC
  2. DCC-Faculdade de Ci^encias-Universidade do Porto
  3. Department of Computer Science-University of Waikato

研究动机

回归问题中的罕见值和现实世界中的多个领域都非常相关,这个问题可以被看作类分布不平衡的分类问题,主要区别在于该问题的目标值是连续变量。不平衡回归任务问题更为困难,主要是因为罕见值出现的频率很低,且样本的重要性和学习器的误差不是同等相关的。现有的分类方法可以分为 3 大类:改进评估指标、改进学习器和使用重采样方法,这三种方法都在分类问题中进行了广泛的研究,但在回归问题上的研究则非常有限。据本文作者所知,还没有研究工作在回归任务中尝试使用过抽样方法(截止该文章发表)。重采样方法比其他方法有明显的优势,因为这类方法可以和现有的回归算法协同工作,不需要对它们进行任何更改。

文章贡献

针对罕见极值预测问题(不平衡回归问题)研究的空缺,本文首次提出了针对该问题的重采样方法。本文使用了欠采样策略,将著名且成功的 SMOTE 算法应用于回归任务,提出了名为 SMOTER 的算法。通过实验表明本文提出的 SMOTER 方法可以与任何现有的回归算法一起使用,使其成为解决连续目标变量罕见极值预测问题的通用工具。

本文方法

重采样方法的是假设给定训练样本的不平衡分布将使学习系统偏向于不符合用户偏好目标的方法,目前(本文发表时)还没有将不平衡分类提出的一些重采样方法应用于回归任务,此处对欠采样和过采样在回归任务的适应性进行讨论。

relevance

在回归中需要使用 relevance(相关性)的概念指定对用户更重要的连续目标值,这个概念的动机是:与标准的回归问题相反,在某些领域中并非所有的值都是同等重要/相关。因此回归的有用性不仅需要考虑预测的数值误差,还需要结合预测值和真实值的相关性。relevance 定义为连续函数 φ(Y):Y→[0,1],也就是将目标变量域 Y 映射到 [0;1] 的尺度上,其中 0 表示相关性最小,1 表示相关性最大。在特定领域上的 relevance 需要由用户进行指定,在本文中使用一种简单的定义方式:relevance 与目标变量概率密度函数成反比。

回归的欠采样

欠采样的基本思想是减少具有最常见目标变量值的数量,以更好地平衡与具有不太频繁的目标值之间的比例,此时得到的训练样本将小于原始(不平衡)数据集。可以使用 relevance 函数值来确定哪些的目标值需要被欠采样,本文的定义是 Dr={<x,y>∈D:φ(y)≥t},其中 t 是用户定义的相关性阈值,也就是根据阈值 t 将数据集按照 relevance 划分出需要欠采样的子集。对于 Dr 中的其他“常见”观测值将随机选择 nu 个样本,nu 的值是为采样比,需要由用户进行定义。nu 的值太大会导致新的训练数据集仍然太不平衡,值太小可能会导致训练集太小。

回归的 SMOTE

SMOTE 是一种经典的过采样算法,本文提出了用于回归问题的 SMOTE 变体 SMOTER。在原始的 SMOTE 中对于少数类集合中的样本,将从同一集合中随机选择其 K 近邻中的一个,利用这两个观测值创建一个新示例,其特征的值是两个原始样本的插值。为了使 SMOTE 适应回归问题,需要解决 SMOTE 算法的三个关键组成部分:

  1. 如何定义哪些是高 relevance 的目标值和“普遍”的值;
  2. 如何创建新的合成样本;
  3. 如何确定合成样本的目标值。

关于第一个问题,SMOTER 基于 relevance 函数和用户指定的阈值,对 Dr 进行过采样和对剩余的样本进行欠采样,从而产生一个具有更平衡的值分布的新训练集。对于第二个问题,则和原始的 SMOTE 使用相同的方法即可。第三个问题是确定合成样本的目标值,在原始 SMOTE 中这是一个微不足道的问题,因为被过采样的样本属于同一个类别,需要被预测的标签是相同的。但在回归问题中虽然用于生成合成样本的样本具有很高的 relevance 分数,但它们的目标变量值并不相同。本文使用两个样本的目标变量值的加权平均值,其中权重为生成样本与两个被用于合成的样本之间距离的反函数。
SMOTER 算法的流程如下伪代码所示,注意在数据集中可能有高值和低值的情况。如果对同样是高 relevance 但是目标值差异很大的样本进行插值,则会导致合成样本的目标值可能是不准确的,因此对于这两个集合的样本合成也需要分开进行。

合成样本的生成如下伪代码所示,对于目标值的生成来源于用于构造合成样本的目标值的加权平均值,合成样本与这些样本的距离越大,合成目标值时的权重越小。

实验结果

数据集和实验设置

实验使用的数据集如下表所示,显示了这些数据集的主要特征,其中使用 relevance 可见数据集平均约有 10% 的样本具有高相关度。

实验使用的算法以及相应的参数如下表所示,共有 20 种学习器被设置(8 种 MARS + 6 种 SVM + 6 种随机森林),每一个学习器都使用 7 种不同的采样方法运行 17 个数据集。抽样包括以下方法:不抽样、SMOTER 方法的 4 种变体、欠采样的 2 个变体。其中四个 SMOTER 变体使用 5 个最近邻来生成病例,relevance 阈值为 0.75,使用 {200,300} 和 {200,500g} 2 组过采样和欠采样率组合。

实验指标使用如以下公式所示的 F1 指标,通过重复 3 次 10 折交叉验证过程的来计算,并对结果进行假设检验。

对比实验

实验结果如下表所示,每种采样策略与 baseline 进行 340 次比较(20 个学习器 × 17 个数据集)。对于每一组对比,计算各个采样方法和 baseline 获得的平均 F1 的差异的统计显著性。结果表明当任务是预测连续目标变量的罕见极值时,本文的采样方法具有优势。例如在 340 种情况中,使用 200% 过采样和 200% 欠采样的配置在 57.6% 的情况下明显优于使用给定数据集的替代方案,而只有 3.2% 的情况下导致了模型训练效果不佳。结果还表明相对于简单地对最频繁的值进行欠采样的方法,SMOTER 方法获得的结果略好。

下图显示对 17 个数据集中的每一个进行采样和不采样所获得的最佳分数,可以看到最好的分数是通过一定的采样获得的。

标签:采样,SMOTE,回归,样本,目标值,Paper,relevance,Reading,Regression
From: https://www.cnblogs.com/linfangnan/p/18032528

相关文章

  • R语言逻辑回归(Logistic Regression)、回归决策树、随机森林信用卡违约分析信贷数据集
    原文链接:http://tecdat.cn/?p=23344最近我们被客户要求撰写关于信用卡违约分析的研究报告,包括一些图形和统计输出。本文中我们介绍了决策树和随机森林的概念,并在R语言中用逻辑回归、回归决策树、随机森林进行信用卡违约数据分析决策树是由节点和分支组成的简单树状结构。根据每......
  • [MIT 6.S081] Lab7: Multithreading
    Lab7:Multithreading在这个实验中主要是要熟悉一下多线程的一些东西,比如实现一个用户态线程,还有使用一些api。Uthread:switchingbetweenthreads这个任务的主要目的是实现用户态线程的调度,不过这个用户态线程个人认为是有栈协程。在这个任务中,需要实现在一个CPU资源的情......
  • 【XV6】 Multithreading
    代码:https://github.com/JasenChao/xv6-labs.git用户级线程切换题目要求完成用户级线程系统,提示程序要在uthread.c和uthread_switch.S中补充完成。用户级线程调度和进程的机制是类似的,因此uthread_switch.S可以复制swtch.S中的内容: .globlthread_switchthread_switch:......
  • MIT 6.1810 Lab: Multithreading
    lab网址:https://pdos.csail.mit.edu/6.828/2022/labs/cow.htmlxv6Book:https://pdos.csail.mit.edu/6.828/2022/xv6/book-riscv-rev3.pdfschedule代码分析scheduler在内核初始化的最后调用,内核初始化由main函数承担,运行在特权模式,main函数由start函数调用,start函数运行在机器模......
  • [java] Tomcat 启动失败 Error: error while reading constant pool for .class: unex
    表现公司服务器今天启动tomcat失败,看catalina.out文件里面报错java.lang.ClassFormatError:Unknownconstanttag101inclassfilecn/world/data尝试解决查了一下,网上一般认为是字符串的问题,但是代码文件目标行是英文字符串,只是简单的println了字符串,应该不会有问题。尤......
  • 神经网络优化篇:详解Softmax 回归(Softmax regression)
    Softmax回归有一种logistic回归的一般形式,叫做Softmax回归,能让在试图识别某一分类时做出预测,或者说是多种分类中的一个,不只是识别两个分类,来一起看一下。假设不单需要识别猫,而是想识别猫,狗和小鸡,把猫加做类1,狗为类2,小鸡是类3,如果不属于以上任何一类,就分到“其它”或者说“以上......
  • Reference only code reading
    Referenceonlycodereading代码逻辑梳理Analysereference-onlycodeincontrolnetextensionofsdwebui.ControlNetHookTheentrypointinnercontrolnet_main_entrylookslike:#defcontrolnet_main_entry():self.latest_network=UnetHook(lowvram=is_low_v......
  • 初中英语优秀范文100篇-068I've Learned a lot from Reading Books-我从阅读书籍中学
    PDF格式公众号回复关键字:SHCZFW068记忆树1Booksplayanimportantroleinourlives.翻译书籍在我们的生活中扮演着重要的角色简化记忆角色句子结构"Books"是主语,表示事物"play"是谓语动词,表示主语的行为"animportantrole"是宾语,表示主语的行为结果"inou......
  • 题解 CF653F Paper task
    CF653FPapertask给定一个长度为\(n\)和括号串,求本质不同的合法括号串个数。\(n\le5\times10^5\)。考虑如果不是求本质不同,可以想到DP。设\(f_{i}\)表示以\(i\)结尾的括号串数,容易发现\(f_{i}=f_{t_{i}-1}+1\),其中\(t_{i}\)表示与\(i\)匹配的左括号位置。用栈......
  • 初中英语优秀范文100篇-061Reading Is a Good Habit-阅读是一种良好的习惯
    PDF格式公众号回复关键字:SHCZFW061记忆树1Agoodhabitcangiveusbenefitsallthelife.翻译养成良好习惯可以使我们终生受益简化记忆受益句子结构主语:"Agoodhabit"-主语是一个名词短语,表示一个良好的习惯。谓语动词:"cangive"-谓语动词是"cangive......