Tabular特征选择基准

news2024/11/16 10:34:06

学术实验中的表格基准通常是一小组精心选择的特征。相比之下,工业界数据科学家通常会收集尽可能多的特征到他们的数据集中,甚至从现有的特征中设计新的特征。为了防止在后续的下游建模中过拟合,数据科学家通常使用自动特征选择方法来获得特征子集。Tabular特征选择的现有基准建立在经典的下游模型,合成的toy数据集上。在Tabular深度学习日益普及的激励下,该文构建了一个具有挑战性的全新特征选择基准,在包括Transformer在内的下游网络上进行评估。还提出了一种基于输入梯度的Lasso模型,它在具有挑战性的问题上优于经典的特征选择方法。

来自:A Performance-Driven Benchmark for Feature Selection in Tabular Deep Learning
项目地址:https://github.com/vcherepanova/tabular-feature-selection

目录

  • 背景概述
  • 相关工作
    • 表格深度学习
    • 特征选择
    • 特征选择的benchmark
  • 实验设置
  • 噪声对Deep model和GBDT的影响
  • 特征选择benchmark
  • 基准测试特征选择方法
  • 结果

背景概述

表格数据在科学和工业应用中无处不在。从业者通常通过包括详尽的可用特征集或手工设计附加特征来管理表格数据集。在这样的过程下,现实世界的表格数据集可以快速积累大量的特征,其中许多特征对下游模型没有用处。在如此大量的特征上进行训练,包括嘈杂的或无信息的特征,可能会导致过拟合。为了避免过拟合,从业者使用自动特征选择方法过滤和去除特征。

现有文献中包含了大量的工作,提出或评估特征选择方法,这些方法在选择标准中使用经典机器学习算法,或者选择用于训练经典机器学习算法的特征。在过去几年中,表格数据的深度学习已经变得具有竞争力,并越来越多地被从业者采用。虽然很早已经有研究指出神经网络容易对噪声特征过拟合,但现在依然缺乏对下游的Trabular-based神经网络特征选择方法的全面评估。

为了解决这一缺失,该研究在Tabular深度学习设置中对特征选择方法进行基准测试,通过对其进行下游训练的神经网络的性能来评估。除了流行的现有方法外,还使用Tabular Transformer模型的注意力图来选择特征,并且进一步提出了Deep Lasso:一种基于输入梯度的Lasso模型。鉴于之前许多关于特征选择的工作完全使用合成数据集或通过将随机噪声连接到现有特征上创建无关特征,该研究在真实数据集上进行基准测试,并探索了三种不同的方法来构建无关特征:随机噪声特征、损坏特征和二阶特征作为特征工程的典型例子。

在实验中发现虽然许多特征选择方法可以在合理范围内区分信息特征和噪声,但它们可能在更具挑战性的设置下失效。值得注意的是,当从损坏或二阶特征中选择特征时,Deep Lasso选择的特征比以前的方法获得了更好的下游神经网络性能。

相关工作

表格深度学习

表格数据是现实世界机器学习应用中主要的数据格式。直到最近,这些应用都还主要是使用经典的决策树模型来解决的,比如GBDT。然而,现代深度表格神经网络开始弥补与传统GBDT的差距,这反过来又为表格领域的深度学习打开了新的案例。最近的工作包括开发新的架构,例如基于Transformer,可微学习器集成,以及基于MLP架构的修改和正则化。也有其他研究探索了表格深度学习带来的新功能,如自监督预训练,迁移学习,小样本学习和生成式学习。


目前GBDT依然是最受欢迎的表格数据方法


特征选择

应用机器学习的基石是特征选择,数据科学从业者仔细策划和选择有利于预测任务的特征。因此,人们对自动化这个过程非常感兴趣。

现有的特征选择方法可以分为三种主要类型:过滤法、包装法和嵌入法。过滤法根据特征的个体特征和与目标变量的相关性对特征进行排序,而不考虑任何特定的学习算法。过滤法的例子包括单变量统计检验(univariate statistical tests)、方差过滤(variance filters)和互信息分数(mutual information scores)。另一方面,包装法依赖于算法,并且涉及在特征子集上迭代地重新训练机器学习算法,以确定产生最佳性能的子集。其中包括递归特征消除(recursive feature elimination)以及进化算法(evolutionary algorithms)。嵌入法将特征选择任务整合到训练过程中,允许模型在训练时学习哪些特征是最相关的。Lasso是一种经典的嵌入式特征选择算法,该算法也以Adaptive Group Lasso的形式应用于深度神经网络。此外,基于树的算法,如随机森林和梯度提升决策树采用内置的特征重要性度量,实现自动特征选择。

该研究发现包装法通常计算成本太高,无法用于大型深度神经网络模型。因此,在该研究中,重点就自然地放在可以应用于通用表格架构的经典和现代已建立的过滤和嵌入式方法上

特征选择的benchmark

到目前为止,还不清楚哪种策略,无论是经典的还是现代的,对于表格模型的特征选择是最优的。现有的基准研究主要集中在经典的下游模型,或者根本没有对下游任务性能进行优化。一些研究在合成数据集或特定领域的数据集(如包含少量样本的高维基因组学数据:Benchmark for filter methods for feature selection in high-dimensional classification data,恶意软件检测数据)上评估特征选择方法。

相比之下,这项工作为现代深度表格模型提供了广泛的特征选择方法基准。其在具有不同类型的无关特征的大规模表格数据集上构建了特征选择基准,并研究了一系列具有代表性的特征选择器,包括经典和基于深度学习的特征选择器。该基准基于下游深度表格模型的性能评估特征选择方法。

实验设置

该研究构建了一个具有挑战性的特征选择基准,该基准使用真实数据集,并包括多种方法来控制外部特征的构建。在所有情况下,基于下游神经网络性能评估特征选择方法,即特征选择的实际相关度量。将MLP架构和最近基于Transformer的表格学习FT-Transformer架构作为下游模型进行了实验。基准包括12个数据集和3种附加特征。这些数据集是根据最近的表格基准论文收集和调整的,包括ALOI (AL), California Housing (CA), Covertype (CO), Eye Movements (EY), Gesture (GE), Helena (HE), Higgs 98k (HI), House 16K (HO), Jannis (JA), Otto Group Product Classification (OT), Year (YE) 和Microsoft (MI)。在这些数据集中,有8个分类数据集和4个回归数据集。使用分类任务的accuracy和回归任务的RMSE来衡量下游模型的性能。

对于每个基准测试实验,我们使用贝叶斯超参数优化引擎(Bayesian hyperparameter optimization engine)Optuna对特征选择算法和下游模型的性能进行了广泛的超参数调优。根据验证指标选择最佳超参数,并设置超过10个随机种子计算的测试指标。有关最终超参数的详细信息如下。

训练细节
训练200个epoch的所有深度表模型,并且如果连续20个epoch后验证精度没有提高,则训练停止。XGBoost模型使用最多2000个估计器和50个早期停止轮进行训练。利用AdamW优化器并在epoch 40和80之后应用线性学习率调度器。所有实验的批处理大小设置为512。其他训练参数,包括学习率和权值衰减,是通过超参数调优确定的。

超参数调优
使用贝叶斯超参数优化库Optuna调整每个实验的所有模型的参数。对于特征选择实验,同时调整特征选择和下游模型的参数,以优化下游模型验证的准确性。进行了100次试验,以确定每个实验的最佳参数。不同模型设置的超参数搜索范围如下:
figs1

噪声对Deep model和GBDT的影响

最近对表格神经网络和GBDT之间持续竞争的研究发现,在中小型数据集(多达10,000个样本)上,神经网络比GBDT更容易受到噪声的影响。

该研究探讨了非信息特征对表格神经网络的影响,并评估了MLP和FT-Transformer模型在包含不同数量的非信息高斯噪声特征的数据集上的性能。作为参考,该研究还将流行的XGBoost包中实现的GBDT模型纳入了比较。图1说明了三种模型的性能与这些数据集中非信息特征的比例之间的关系。观察到,与XGBoost相比,MLP架构平均对非信息特征表现出更多的过拟合,这促使人们需要进行仔细的特征选择。有趣的是,从图1中蓝色和绿色曲线的斜率可以看出,FT-Transformer模型对噪声特征的鲁棒性与XGBoost模型大致相同。

fig1

  • 图1:FT-Transformer,MLP和XGBoost在随机附加特征数据上训练时的性能。

特征选择benchmark

特征选择算法通常在包含由高斯噪声产生的伪特征的数据集上进行评估。这不仅与现实世界的特征选择场景有很大不同,而且对于许多特征选择算法来说,消除这些随机特征也是一个相对简单的任务。鉴于这些考虑,提出了一种替代方法,通过引入三种不同的方法来制作附加特征,从而建立更具挑战性和更现实的特征选择基准:

  • 随机特征:在最简单的场景中,我们从高斯分布中采样无信息特征,并将它们与原始数据集特征连接起来。
  • 损坏的特征:为了模拟一个有噪声但仍然相关的特征的场景,我们从原始特征中采样无关的特征,并用高斯噪声破坏它们。此外,进行了拉普拉斯噪声破坏实验。
  • 二阶特征:为了进一步模拟工程特征的场景,还添加了二阶特征,即随机选择的原始特征的乘积。

高阶特征并不是虚假的,数据科学家经常使用它们。有时候,选择高阶特征而不是原始特征可能不是一件坏事。因为本质上,特征选择算法最终应该根据下游模型的性能进行评估。


为了衡量所提出benchmark的难度,该研究探索了不同特征选择算法在获得的 top- k k k 最重要特征中对无关特征进行排序的频率,其中 k k k为数据集中原始特征的数量。从图2中,观察到所有方法选择的随机特征(随机特征本身就是额外的特征)都比损坏或二阶特征少。此外,为了量化不同特征选择方法之间的总体一致性,该研究分析了不同选择算法生成的特征排名之间的平均成对Spearman相关性。值得注意的是,涉及随机额外特征的设置显示出最高的相关性,这表明过滤掉随机特征相对简单,所有特征选择算法的行为在这种场景下都比较相似。

作为对比,具有二阶额外特征的设置具有最低的等级相关性,这意味着算法之间的选择偏好存在更大的差异。

fig2

  • 图2:由不同特征选择算法在随机、损坏和二阶特征场景下的结果。importance rank correlation是指在所有特征选择算法和数据集上的成对特征重要性Spearman相关性的平均值。与损坏和二阶特征相比,特征选择算法在从随机特征中进行选择时具有更高的一致性。

基准测试特征选择方法

该研究对各种特征选择方法进行基准测试。特别是,考虑以下特征选择方法:

  • 单变量统计检验:这一经典分析检验了预测因子与目标变量之间的线性相关性。对于分类问题,它根据ANOVA F-values选择特征。对于回归问题,它根据univariate linear regression test F-values选择特征。

  • Lasso:使用L1正则化来促进线性回归模型的稀疏性,在这种稀疏回归之后,根据系数大小对特征进行排序。

  • First Layer Lasso(1L Lasso):是Lasso的扩展,适用于多层MLP。它对第一层参数的权重施加了Group Lasso惩罚: m i n θ L θ ( X , Y ) + ( 1 − α ) ∑ j = 1 m ∣ ∣ W ( j ) ∣ ∣ 2 min_{\theta}L_{\theta}(X,Y)+(1-\alpha)\sum_{j=1}^{m}||W^{(j)}||_{2} minθLθ(X,Y)+(1α

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1250783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Google hacking语法

Google hacking语法 文章目录 Google hacking语法site:inurl:intitle:filetypecacheintext注意 site: 搜索子域 跟域名site:www.baidu.com 定位 跟语言 site: jp inurl: 用于在特定url链接中搜索网站信息 inurl:login intitle: 使用intitle:指令返回页面标题中包含关键…

【实战】K8S Helm部署Redis Cluster Redisinsight

文章目录 前言部署Redis Cluster安装Redis Insight写在最后 前言 在Web服务的开发过程中,Redis一直以来都有着举足轻重的作用。基本上所有的后端服务都会用这个中间件实现具体的业务场景,比如常作为系统缓存、分布式锁,也可以实现排名、定位…

vivado产生报告阅读分析21

其他命令选项 • -of_objects <suggestion objects> &#xff1a; 启用特定建议的报告。在此模式下运行时 &#xff0c; report_qor_suggestions 不会生成新建议。此命令可快速执行 &#xff0c; 读取 RQS 文件后 &#xff0c; 此命令可用于查看其中包 含的建议。其…

从零开始学习管道:进程通信的概念,特点和示例

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容通过进程通信的概念&#xff0c;引入管道&#xff0c;实…

pwn:[NISACTF 2022]ReorPwn?

题目 按正常方式走&#xff0c;发现指令被反着输出

C++ Boost 异步网络编程基础

Boost库为C提供了强大的支持&#xff0c;尤其在多线程和网络编程方面。其中&#xff0c;Boost.Asio库是一个基于前摄器设计模式的库&#xff0c;用于实现高并发和网络相关的开发。Boost.Asio核心类是io_service&#xff0c;它相当于前摄模式下的Proactor角色。所有的IO操作都需…

通过互联网代理部署Docker+Kubernetes 1.28.1

一、背景 在公司环境中&#xff0c;我们往往都是无法直接连接外网的&#xff0c;之前写过一篇文章&#xff0c;是通过外网自建的中转机器下载需要的离线包&#xff0c;并在内网搭建一个harbor&#xff0c;通过harbor的方式搭建了一个kubernetes&#xff0c;但是这种方式还是有…

小程序姓名:ssm+vue基本微信小程序的个人健康管理系统

项目介绍 首先,论文一开始便是清楚的论述了小程序的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了小程序的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数…

2023 年 认证杯 小美赛 ABC题 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 cs数模团队在认证杯 小美赛前为大家提供了许多资料的内容呀&am…

openEuler20.03学习01-创建虚拟机

赶个时髦&#xff0c;开始学习openEuler 20.03 (LTS-SP3) 操作系统iso下载地址&#xff1a;https://repo.openeuler.openatom.cn/openEuler-20.03-LTS-SP3/ISO/x86_64/openEuler-20.03-LTS-SP3-x86_64-dvd.iso 公司有现成的vmware环境&#xff0c;创建虚拟机i测试&#xff0c…

检索增强生成架构详解【RAG】

生成式AI技术很强大&#xff0c;但它们受到知识的限制。 虽然像 ChatGPT 这样的LLM可以执行许多任务&#xff0c;但每个LLM的基线知识都存在基于其训练数据的差距。 如果你要求LLM写一些关于最近趋势或事件的文章&#xff0c;LLM不会知道你在说什么&#xff0c;而且回答最好是混…

vivado产生报告阅读分析22

“ Advanced ”选项卡 “ Advanced ” &#xff08; 高级 &#xff09; 选项卡如下图所示。 在“ Advanced ”选项卡中提供了以下字段 &#xff1a; • “ Report ” &#xff08; 报告 &#xff09;&#xff1a; 选中“ Advanced ”选项卡中的“ Cells to Analyze ” &…

GEE:通过将 Landsat 5、7、8、9 的 C02 数据集合并起来,构建 NDVI 长时间序列

作者:CSDN @ _养乐多_ 本文记录了在 Google Earth Engine(GEE)平台上,将 Landsat-5、Landsat-7、Landsat-8 和 Landsat-9 的数据合成为一个影像集合,并生成 NDVI(归一化植被指数)的时间序列的代码。 代码封装成了函数,方便调用,结果如下图所示, 在实际应用中,可能…

地表最强端口扫描神器之namp工具的使用方法

namp使用方法 文章目录 namp使用方法nmap工具是什么?nmap工具是用来干什么的?nmap扫描工具如何使用-A-sS-sP-p-sV nmap工具是什么? nmap是一款强大的网络扫描和安全审计工具&#xff0c;它可以帮助用户探测网络中存活的主机&#xff0c;扫描开放的端口&#xff0c;检测运行…

c++_继承

&#x1f3f7;如被何实现一个不能被继承的类&#xff08;或是继承无意义的类&#xff09; 将构造函数定义成私有的就行了&#xff0c;即&#xff1a;私有化父类的构造函数 c 11 新增关键字final 修饰父类直接不能被继承 class A final {........ }&#x1f3f7;继承与有元 有…

基于mediapipe的人手21点姿态检测模型—CPU上检测速度惊人

前期的文章,我们介绍了MediaPipe对象检测与对象分类任务,也分享了MediaPipe的人手手势识别。在进行人手手势识别前,MediaPipe首先需要进行人手的检测与人手坐标点的检测,经过以上的检测后,才能把人手的坐标点与手势结合起来,进行相关的手势识别。 MediaPipe人手坐标点检测…

Linux学习笔记之六(进程之间的管道通信和信号处理)

目录 1、管道通信1.1、无名管道1.1、有名管道 2、信号处理2.1、信号的种类和发送2.2、信号的接受和处理 1、管道通信 管道通信是一个设备中进程与进程之间通信的一种方式&#xff0c;分为无名管道和有名管道两种。前者只能用于有亲缘关系的进程之间的通信&#xff0c;如父子进…

B/S前后端分离的Java医院云HIS信息管理系统源码(LIS源码+电子病历源码)

HIS系统采用主流成熟技术开发&#xff0c;软件结构简洁、代码规范易阅读&#xff0c;SaaS应用&#xff0c;全浏览器访问前后端分离&#xff0c;多服务协同&#xff0c;服务可拆分&#xff0c;功能易扩展。多医院、多集团统一登录患者主索引建立、主数据管理&#xff0c;统一对外…

windows cmd执行远程长脚本

背景 有时候我们想在未进行一些环境设置&#xff0c;或者工具使用者电脑中执行一段初始化脚本&#xff0c;为了简化使用者的理解成本&#xff0c;通常给使用者一段代码执行初始化电脑中的设置&#xff0c;尤其是这段初始化脚本比较长的时候。 脚本制作者 比如将需要执行的命…

【React】Memo

组件重新渲染时缓存计算的结果。 实例&#xff1a;count1计算斐波那契数列&#xff0c;count2和count1可以触发数值变化。使用memo可以使只有在count1变化时触发斐波那契数列计算函数&#xff0c;而count2变化时不触发斐波那契数列计算函数。 import { useMemo } from "r…