Py学习  »  机器学习算法

XGBoost 和随机森林在表格数据上优于深度学习?

Datawhale • 1 年前 • 194 次点击  
 Datawhale干货 
来源:机器之心编辑部
为什么基于树的机器学习方法,如 XGBoost 和随机森林在表格数据上优于深度学习?本文给出了这种现象背后的原因,他们选取了 45 个开放数据集,并定义了一个新基准,对基于树的模型和深度模型进行比较,总结出三点原因来解释这种现象。 

深度学习在图像、语言甚至音频等领域取得了巨大的进步。然而,在处理表格数据上,深度学习却表现一般。由于表格数据具有特征不均匀、样本量小、极值较大等特,因此很难找到相应的不变量。

基于树的模型不可微,不能与深度学习模块联合训练,因此创建特定于表格的深度学习架构是一个非常活跃的研究领域。许多研究都声称可以击败或媲美基于树的模型,但他们的研究遭到很多质疑。

事实上,对表格数据的学习缺乏既定基准,这样一来研究人员在评估他们的方法时就有很多自由度。此外,与其他机器学习子域中的基准相比,大多数在线可用的表格数据集都很小,这使得评估更加困难。

为了缓解这些担忧,来自法国国家信息与自动化研究所、索邦大学等机构的研究者提出了一个表格数据基准,其能够评估最新的深度学习模型,并表明基于树的模型在中型表格数据集上仍然是 SOTA。

对于这一结论,文中给出了确凿的证据,在表格数据上,使用基于树的方法比深度学习(甚至是现代架构)更容易实现良好的预测,研究者并探明了其中的原因。


论文地址:https://hal.archives-ouvertes.fr/hal-03723551/document

值得一提的是,论文作者之一是 Gaël Varoquaux ,他是 Scikit-learn 计划的领导者之一。目前该项目在 GitHub 上已成为最流行的机器学习库之一。而由 Gaël Varoquaux 参与的文章《Scikit-learn: Machine learning in Python》,引用量达 58949。


本文贡献可总结为:

该研究为表格数据创建了一个新的基准(选取了 45 个开放数据集),并通过 OpenML 共享这些数据集,这使得它们易于使用。

该研究在表格数据的多种设置下比较了深度学习模型和基于树的模型,并考虑了选择超参数的成本。该研究还分享了随机搜索的原始结果,这将使研究人员能够廉价地测试新算法以获得固定的超参数优化预算。

在表格数据上,基于树的模型仍然优于深度学习方法

新基准参考 45 个表格数据集,选择基准如下 :

  • 异构列,列应该对应不同性质的特征,从而排除图像或信号数据集。
  • 维度低,数据集 d/n 比率低于 1/10。
  • 无效数据集,删除可用信息很少的数据集。
  • I.I.D.(独立同分布)数据,移除类似流的数据集或时间序列。
  • 真实世界数据,删除人工数据集,但保留一些模拟数据集。
  • 数据集不能太小,删除特征太少(< 4)和样本太少(< 3 000)的数据集。
  • 删除过于简单的数据集。
  • 删除扑克和国际象棋等游戏的数据集,因为这些数据集目标都是确定性的。
 
在基于树的模型中,研究者选择了 3 种 SOTA 模型:Scikit Learn 的 RandomForest,GradientBoostingTrees (GBTs) , XGBoost 。

该研究对深度模型进行了以下基准测试:MLP、Resnet 、FT Transformer、SAINT 。

图 1 和图 2 给出了不同类型数据集的基准测试结果


实证调查:为什么基于树的模型在表格数据上仍然优于深度学习

归纳偏差。基于树的模型在各种超参数选择中击败了神经网络。事实上,处理表格数据的最佳方法有两个共有属性:它们是集成方法、bagging(随机森林)或 boosting(XGBoost、GBT),而这些方法中使用的弱学习器是决策树。

发现 1:神经网络(NN)倾向于过度平滑的解决方案

如图 3 所示,对于较小的尺度,平滑训练集上的目标函数会显着降低基于树的模型的准确率,但几乎不会影响 NN。这些结果表明,数据集中的目标函数并不平滑,与基于树的模型相比,NN 难以适应这些不规则函数。这与 Rahaman 等人的发现一致,他们发现 NN 偏向于低频函数。基于决策树的模型学习分段(piece-wise)常函数,没有这样的偏置。


发现 2:非信息特征更能影响类似 MLP 的 NN

表格数据集包含许多非信息( uninformative)特征,对于每个数据集,该研究根据特征的重要性会选择丢弃一定比例的特征(通常按随机森林排序)。从图 4 可以看出,去除一半以上的特征对 GBT 的分类准确率影响不大。


图 5 可以看到移除非信息特征 (5a) 减少了 MLP (Resnet) 与其他模型(FT Transformers 和基于树的模型)之间的性能差距 ,而添加非信息特征会扩大差距,这表明 MLP 对非信息特征的鲁棒性较差。在图 5a 中,当研究者移除更大比例的特征时,相应的也会删除有用信息特征。图 5b 表明,去除这些特征所带来的准确率下降可以通过去除非信息特征来补偿,与其他模型相比,这对 MLP 更有帮助(同时,该研究还删除了冗余特性,也不会影响模型性能)。



发现 3:通过旋转,数据是非不变的

与其他模型相比,为什么 MLP 更容易受到无信息特征的影响?其中一个答案是,MLP 是旋转不变的:当对训练集和测试集特征应用旋转时,在训练集上学习 MLP 并在测试集上进行评估,这一过程是不变的。事实上,任何旋转不变的学习过程都具有最坏情况下的样本复杂度,该复杂度至少在不相关特征的数量上呈线性增长。直观地说,为了去除无用特征,旋转不变算法必须首先找到特征的原始方向,然后选择信息最少的特征。
 
图 6a 显示了当对数据集进行随机旋转时的测试准确率变化,证实只有 Resnets 是旋转不变的。值得注意的是,随机旋转颠倒了性能顺序:结果是 NN 在基于树的模型之上,Resnets 在 FT Transformer 之上,这表明旋转不变性是不可取的。事实上,表格数据通常具有单独含义,例如年龄、体重等。

图 6b 中显示:删除每个数据集中最不重要的一半特征(在旋转之前),会降低除 Resnets 之外的所有模型的性能,但与没有删除特征使用所有特征时相比,相比较而言,下降的幅度较小。


原文链接:https://twitter.com/GaelVaroquaux/status/1549422403889

整理不易,三连

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/138401
 
194 次点击