Tabular特征选择基准

学术实验中的表格基准通常是一小组精心选择的特征。相比之下,工业界数据科学家通常会收集尽可能多的特征到他们的数据集中,甚至从现有的特征中设计新的特征。为了防止在后续的下游建模中过拟合,数据科学家通常使用自动特征选择方法来获得特征子集。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.mfbz.cn/a/187318.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM 内存分析工具 MAT及实践

线程分析工具 MAT 官网下载地址:http://www.eclipse.org/mat/downloads.php mat百度网盘链接:(速度更快) 链接:https://pan.baidu.com/s/1tMp8MQIXuPtg9zBgruO0Ug?pwdjqtv 提取码:jqtv jdk17 百度网盘链接…

HCIP-八、路由引入

八、路由引入 实验拓扑实验需求及解法1.配置所有设备的IP地址。2.R1/2/3/4运行OSPF3.R3/4/5运行IS-IS4.在R3/4上将OSPF 1引入IS-IS5.在R3/4上将IS-IS引入OSPF6.路径优化 实验拓扑 实验需求及解法 本实验模拟OSPF与IS-IS互联的网络环境,完成以下需求: 1…

vivado产生报告阅读分析22

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

Flink Flink中的分流

一、什么是分流 所谓“分流”,就是将一条数据流拆分成完全独立的两条、甚至多条流。也就是基于一个DataStream,定义一些筛选条件,将符合条件的数据拣选出来放到对应的流里。 二、基于filter算子的简单实现分流 其实根据条件筛选数据的需求…

lvm 扩容根分区失败记录

lvm 扩容根分区失败记录 1、问题描述2、错误描述3、解决方法重启系统进入grub界面,选择kernel 2.x 启动系统。然后同样的resize2fs命令扩容成功。 1、问题描述 根分区不足。 系统有2个内核版本,一个是kernel 2.x,另一个是kernel 4.x。 这次l…

《微信小程序从入门到精通》---笔记1

小程序,我又来学习啦!请多关照~ 项目驱动 小程序开发建议使用flex布局在小程序中,页面渲染和业务逻辑是分开的,分别运行在不同的线程中。Mini Program于2017年1月7号正式上线小程序的有点:跨平台、开发门槛低、开发周…

盘点60个Python爬虫源码Python爱好者不容错过

盘点60个Python爬虫源码Python爱好者不容错过 爬虫(Spider) 学习知识费力气,收集整理更不易。 知识付费甚欢喜,为咱码农谋福利。 链接:https://pan.baidu.com/s/1JWrDgl46_ammprQaJiKqaQ?pwd8888 提取码&#xff…

机器学习与因果推断的高级实践 | 数学建模

文章目录 因果推断因果推断的前世今生(1)潜在结果框架(Potential Outcome Framework)(2)结构因果模型(Structual Causal Model,SCM) 身处人工智能爆发式增长时代的机器学…

战地5无限序章(无法保存)的解决办法

启动游戏后,目录就会自动变成这样了,也不会无限循环了!

Flash Attention:高效注意力机制的突破与应用

注意力机制彻底改变了自然语言处理和深度学习领域。它们允许模型在执行机器翻译、语言生成等任务时专注于输入数据的相关部分。 在这篇博客[1]中,我们将深入研究被称为“Flash Attention”的注意力机制的突破性进展。我们将探讨它是什么、它是如何工作的&#xff0c…

【matlab程序】matlab给风速添加图例大小

【matlab程序】matlab给风速添加图例大小 clear;clc;close all; % load 加载风速数据。 load(matlab.mat) % 加载颜色包信息 gray load(D:\matlab_work\函数名为colormore的颜色索引表制作\R_color_txt\R_color_single\gray89.txt); brown load(D:\matlab_work\函数名为color…

解决在Windows10或Windows11下无权限修改hosts文件

解决在Windows10或Windows11下无权限修改hosts文件,无法写入内容 1、首先在开始菜单中找到这个 2、接着输入: C:\Windows\System32\drivers\etc3、再次输入以下命令行:notepad hosts ,并回车: notepad hosts 4、然后…

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

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

01_MySQL介绍及安装

#任务背景 一、真实案例 某公司现在有几套不同版本的MySQL数据库,现在大部分的生产和测试环境都已经切换到5.7版本,由于历史原因,有一套测试环境版本为MySQL-5.5。现为了将测试环境版本统一,需要将原来测试环境数据库MySQL-5.5版…

基于ThinkPHP8 + Vue3 + element-ui-plus + 微信小程序(原生) + Vant2 的 BBS论坛系统设计【PHP课设】

一、BBS论坛功能描述 我做的是一个论坛类的网页项目,每个用户可以登录注册查看并发布文章,以及对文章的点赞和评论,还有文件上传和个人签名发布和基础信息修改,管理员对网站的数据进行统计,对文章和文件的上传以及评论…

AtomicReference原子引用类-线程安全

简介与作用: AtomicReference是Java中的一个原子类,它的主要作用是提供了一种原子操作的方式来更新对象的引用。它通常用于多线程环境下,用来解决并发访问共享对象时可能出现的竞态条件问题。 (实际开发中用于某个数据模型更新&a…

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

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

83基于matlab 的时钟时间识别GUI

基于matlab 的时钟时间识别GUI。图像去除背景-转化为二值化图像-找出对应的直线边缘-找到秒针、分针、时针对应的直线,并算出斜率、角度-判断时间,分针与时针 (度数)。数据可更换自己的,程序已调通,可直接运…

代码随想录算法训练营第30天|回溯总结 332. 重新安排行程

回溯是递归的副产品,只要有递归就会有回溯,所以回溯法也经常和二叉树遍历,深度优先搜索混在一起,因为这两种方式都是用了递归。 回溯法就是暴力搜索,并不是什么高效的算法,最多再剪枝一下。 回溯算法能解…

C语言—一维数组在内存中的存放

1、先看代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int arr[]{1,2,3,4,5,6,7,8,9,10}; int szsizeof(arr)/sizeof(arr[0]);int i0;for(i0;i<sz;i){printf("&arr[%d] %p\n",i,&arr[i]);}return 0; } 2、定…
最新文章