Team up GBDTs and DNNs: Advancing Efficient and Effective Tabular Prediction with Tree-hybrid MLPs

核心思想

融合GBDT和DNN优势,提出高效表格数据预测框架T-MLP。

论文概述

虽然深度模型在各个领域大放光彩,但在表格数据领域,树模型(GBDT)和深度模型(DNN)谁更胜一筹仍在上演龙虎之争!特别是在Kaggle等数据科学竞赛平台上,树模型仍常位居榜首。工业界,深度模型在各个岗位上发光发热,但仍少不了一些树模型在某些角落打螺丝。

GBDT和DNN各有其优势和缺点。

模型 优势 不足
GBDT 1.对数据分布和特征交互有较好的适应性,在表格预测任务中出色且高效,随便一搞就是一个不错的基线。
2.低资源要求,可解释性好。
1.比较依赖特征工程。
2.在大规模表格数据下,推理延迟显著增加。
3.难以应用现有的优化算法。
DNN 1. 拥有高维特征空间,能够挖掘复杂的特征交互,在复杂数据场景中优势明显。
2. 模型表达能力强,理论上可以拟合任何函数关系。
1.容易过参数化,在小数据集上容易出现过拟合现象。
2.训练成本高:计算资源 + 训练时间。

针对这些问题,论文提出了Tree-hybrid MLP(T-MLP)方法,其核心思想是结合GBDT的特征选择和模型集成优势与DNN的高维特征空间和光滑优化特性,通过张量化GBDT特征门、DNN架构剪枝和反向传播协同训练MLP模型,以实现高效、有效的表数据预测。

方法介绍

具体来说,T-MLP包括以下几个关键步骤或模块:

  1. GBDT特征门控(GBDT Feature Gate,GFG)】

    先用GBDT在训练数据上学习一遍得到一个树模型,再利用这个树模型获得特征频率来选择对当前样本最重要的特征,通过张量化操作将GBDT的决策过程融入到DNN中,实现样本特定的特征选择。

  2. 纯MLP基本块(Pure MLP Basic Block) :采用简化版的MLP结构,通过空间门控单元(SGU)实现特征间的交互,保持模型的紧凑性。

  3. DNN架构剪枝(DNN Architecture Pruning) :借鉴GBDT的预剪枝思想,通过DNN剪枝技术减少模型参数,提高模型的泛化能力和训练效率。

实验分析

论文中也对比了不同模块的重要性,特地对比了使用神经网络门控,依然有一定效果。

另外一个有趣的实验是分析了不同模型的决策边界(FT-T表示FT-Transformer)。通过在两个数据集上的例子可以看出树模型和深度模型决策边界的明显区别:树模型决策边界通常是垂直的,深度模型是很光滑的(这也是深度模型容易过拟合的原因——拟合的太好了)。T-MLP看起来兼具了两者的特点,既有大致的垂直也有较光滑的边界。

结论

内核感觉就是特征权重,只是权重来源于树模型,有点像经典的GBDT+LR的方法。

不失为打比赛时的一种选择哦~

FunPapers[1]: GBDT和DNN强强联手,表格预测新突破!的更多相关文章

  1. 【可视化】DataV接入ECharts图表库 可视化利器强强联手

    DataV接入ECharts图表库 可视化利器强强联手 摘要: 两个扛把子级产品的结合,而且文末有彩蛋. DataV 数据可视化是搭建每年天猫双十一作战大屏的幕后功臣,ECharts 是广受数据可视化 ...

  2. DOM给表格添加新一行和删除整个行的内容

    DOM用appendChild()给表格添加新一行时,要注意,在HTML中没特别设置<thead>,<tbody>时,会自动添加上,所以要选择表格第一个元素在添加tr. // ...

  3. OKR与Scrum如何强强联手

    我们收到很多问题询问如何把OKR和其他框架结合起来使用,以便管理组织的人员.流程和活动. 软件开发公司最喜欢用的框架之一就是Scrum,Scrum是一个诞生于20世纪90年代的软件开发框架,我们公司内 ...

  4. ChatGPT 与 Midjourney 强强联手,让先秦阿房宫重现辉煌!

    Midjourney 是一款非常特殊的 AI 绘画聊天机器人,它并不是软件,也不用安装,而是直接搭载在 Discord 平台之上,所有的功能都是通过调用 Discord 的聊天机器人程序实现的.要想使 ...

  5. Javascript/jQuery根据页面上表格创建新汇总表格

    任务背景及需求 按页面上的现成表格,用js生成新的统计表格如下: 实现思路 1,把表格数据抽取出来生成json数组 2,计算表格总数并创建空表格 3,历遍json数组把数据动态插入所有的表格,设值/a ...

  6. chapter02 三种决策树模型:单一决策树、随机森林、GBDT(梯度提升决策树) 预测泰坦尼克号乘客生还情况

    单一标准的决策树:会根每维特征对预测结果的影响程度进行排序,进而决定不同特征从上至下构建分类节点的顺序.Random Forest Classifier:使用相同的训练样本同时搭建多个独立的分类模型, ...

  7. NPOI word文档表格在新的文档中多次使用

    最近有一个项目,涉及到文档操作,有一个固定的模版,模版中有文字和表格,表格会在新的文档中使用n多次 //获取模版中的表格FileStream stream = new FileStream(strPa ...

  8. 苹果HomeKit联手海尔的三大原因

    2014已成智能家居元年,无论是资本市场还是巨头企业无不把触角向这一领域延伸.刚有人称,智能家居将成三星和谷歌对决,但不成想,前几天的苹果WWDC大会上,苹果就发布了自家的智能家居平台HomeKit. ...

  9. Apache Log4j 2 报高危漏洞,CODING 联手腾讯安全护卫软件安全

    导语 12 月 9 日晚间,Apache Log4j 2 发现了远程代码执行漏洞,恶意使用者可以通过该漏洞在目标服务器上执行任意代码,危害极大. 腾讯安全第一时间将该漏洞收录至腾讯安全漏洞特征库中,C ...

  10. DOM(七)使用DOM控制表格

    表格的css控制就先不说了,首先分享下表格常用的DOM 表格添加操作的方法常用的为insertRow()和insertCell()方法. row是从零开始计算起的,例如: var oTr = docu ...

随机推荐

  1. Java深度历险(四)——Java垃圾回收机制与引用类型

    Java语言的一个重要特性是引入了自动的内存管理机制,使得开发人员不用自己来管理应用中的内存.C/C++开发人员需要通过malloc/free 和new/delete等函数来显式的分配和释放内存.这对 ...

  2. Hook框架之Frida

    Frida是一款轻量级HOOK框架,可用于多平台上,例如android.windows.ios等.    frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行 ...

  3. golang模板库之fasttemplate

    简介 fasttemplate是一个比较简单.易用的小型模板库.fasttemplate的作者valyala另外还开源了不少优秀的库,如大名鼎鼎的fasthttp,前面介绍的bytebufferpoo ...

  4. 项目部署工具之walle

    最近部署walle进行线上项目的上线发布,安装中遇到的问题,在此记录 walle(http://www.walle-web.io) git地址:https://github.com/meolu/wal ...

  5. python之模拟数据Faker

    Faker,它解决的问题是python模拟(随机)数据!不知道大家在工作中没有用到过假数据,特别前后端开发的人员,应该经常用到,前端人员页面展示,效果展示.后端人员数据库数据模拟.今天给大家介绍的这个 ...

  6. Cython二进制逆向系列(一) 初识Cython

    Cython二进制逆向系列(一) 初识Cython   众所周知,Python类题目最难的一种就是使用Cython工具将py源码转换为二进制文件.此类题目相比于直接由Cpython编译而成的类字节码文 ...

  7. chrome浏览器设置允许跨域

    前情 在访问测试搭建的测试环境的时候,发现接口因为跨域全部失败了,服务端又不想设置允许跨域,又急于使用,于是想到是不是可以使用跨域浏览器 放开chrome的跨域设置步骤 复制一个chrome快捷图标, ...

  8. IDEA如何使用快捷键进行驼峰命名转换

    idea菜单栏-file-settings-plugins-在marketplace搜索"CamelCase"-点击安装 安装后重新打开idea,选中内容,使用快捷键:shit+a ...

  9. 关于 Span 的一切:探索新的 .NET 明星: 2. Span<T> 是如何实现的?

    2. Span<T> 是如何实现的? https://docs.microsoft.com/en-us/archive/msdn-magazine/2018/january/csharp- ...

  10. .NET 9 New features-JSON序列化

    .NET 9已经发布有一段时间了,近期整理一下.NET 9的新特性,今天重点分享.NET 9 JSON序列化方面的改进. 先引用官方的说明: 在 System.Text.Json 中,.NET 9 提 ...