基于树的模型(Tree-based model),比如GBDT,XGBoost,Random Forest等仍然是Kaggle,天池等数据比赛中最为常用的算法,在遇到表格型数据(Tabular data)的时候,这些树模型在大多数场景中甚至表现优于深度学习,要知道后者已经在诸多领域(CV,NLP,语音处理等)已经占据了绝对的优势地位。那么为何如此呢?
前言
基于树的模型(Tree-based model),比如GBDT,XGBoost,Random Forest等仍然是Kaggle,天池等数据比赛中最为常用的算法,在遇到表格型数据(Tabular data)的时候,这些树模型在大多数场景中甚至表现优于深度学习,要知道后者已经在诸多领域(CV,NLP,语音处理等)已经占据了绝对的优势地位。那么为何如此呢?论文[1]给出了一些可能的答案,本文对此进行笔记。如有谬误请联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注明出处,谢谢。
e-mail: FesianXu@gmail.com
github: https://github.com/FesianXu
知乎专栏: 计算机视觉/计算机图形理论与应用
微信公众号:机器学习杂货铺3号店
表格型数据如Fig 1.所示,其每一行是一个观测(observation),或者说样本(sample),每一列是一维特征(feature),或者说属性(attribution)。这种数据在现实生活中经常遇到,比如对银行客户进行放贷风险评估就有类似的表格型数据。表格型数据的特征一般有两类,数值型特征(numeric feature)和类别型特征(categories feature)。在天池和kaggle等数据比赛中,经常会遇到类似的表格型数据,而常常称霸榜单的算法通常都是基于树模型的方法,而不是深度学习模型,即使后者已经在诸多领域隐约一统江湖。那么为何深度学习在表格型数据上会遭到如此奇耻大辱呢?论文[1]从三个角度进行了分析。
为了让实验结果更为置信可比,作者收集了45个用于对比试验的表格型数据集,这些数据集的采集和收集过程请参考原文,这里就不介绍了。由于原生的树模型无法对类别型特征进行处理(LightGBM除外,其采用了Fisher[2]的方法进行类别特征分组。),因此本文对类别型数据进行了one-hot编码处理。从分类和回归任务上看,如Fig 2.所示,无论从只有数值型特征的数据集,还是数值型和类别型数据集共存的数据集看,的确都是树模型(XGBoost, RandomForest, GBT)效果要更好。
那么表格型数据为什么那么神奇,能让树模型在各种真实场景的表格数据中都战胜深度学习呢?作者认为有以下三种可能:
- 神经网络倾向于得到过于平滑的解
- 冗余无信息的特征更容易影响神经网络
- 表格型数据并不是旋转不变的
我们分别分析下作者给这三个观点带来的论据。
神经网络倾向于得到过于平滑的解
首先我们假设表格型数据的标注是具有噪声的,并且假设其是高斯噪声,那么可以通过高斯平滑(Gaussian Smooth)进行标注平滑,高斯平滑采用高斯核,可见博文[3]所示。高斯核公式如(1-1)所示
总的来说,作者通过以上的试验,证实了我们的表格型数据的目标(也即是标签)大多数不是平滑的(至少不是高斯平滑的),对比于树模型,神经网络会倾向于去拟合那些不规则的样本,导致在某些程度对这些样本进行了平滑。
冗余无信息的特征更容易影响神经网络
作者认为表格型数据中含有更多无信息量(uninformative)的冗余特征,而树模型对这些无信息特征更为鲁棒。作者将表格型数据的特征按照重要性降序排序(此处的重要性同样是由树模型的分裂增益进行判断),然后按照百分比将不重要的特征依次剔除后进行试验。如Fig 4. (a)所示,其中的绿线是树模型对移除后的特征(也就是更为重要的特征)进行拟合得到测试曲线,我们发现移除大部分不重要特征对结果的影响并不大(去除了50%的特征后仍有80%左右的准确率),这也意味着其实只有少部分特征是具有高信息量的。而红线是树模型对移除的特征(也就是更为不重要的特征)进行拟合得到的测试曲线,我们能发现即便用了一半的(少信息量)特征,其测试结果也仅有50%,同样验证了我们之前得到的结论——少部分特征carry了全场。对比神经网络的结果,如Fig 4. (b)所示,左图表示树模型和神经网络模型在去除不同比例的不重要特征后的测试曲线变化,我们发现当去除更多的不重要特征后,神经网络和树模型的测试表现差别逐渐减少到相等,这意味着神经网络其实对于这种冗余无信息的特征更为不鲁棒。而Fig 4. (b)的右图则是通过高斯分布产出了一些伪特征,这些伪特征无信息量,通过把这些无信息量特征拼接到原有的样本上,我们模拟了引入无信息特征的过程。我们发现引入更多的无信息特征,神经网络和树模型的测试效果差距将会明显增大。
至于笔者的看法,笔者认为这里挑选重要性特征的依据,同样是根据树模型的权重进行判断的,用树模型权重挑选出所谓不重要的特征,然后进行测试验证去说明树模型对不重要特征更为鲁棒,是否会对神经网络不公平呢? 当然Fig 4. (b)的试验由于不依赖与特征的权重,而是由高斯分布产出一些无信息量特征,笔者认为还是更可靠,更有说服力的。
表格型数据并不是旋转不变的
作者在文章中认为表格型数据并不是旋转不变的,而神经网络会对数据进行旋转不变的处理,因此效果更差。首先笔者要说明什么是旋转不变性(rotation invariant),对于函数
这种旋转不变性对于表格型数据而言并不是一件好事。不同于图片数据,图片数据训练过程中,经常会考虑采用对图片进行一定的旋转,以增强模型的旋转不变性。这个是因为图片像素作为一种各向同性的原始特征,每个像素并没有各自的物理含义,因此旋转也不会改变其物理含义。相反地,由于图片实体在不同角度下大部分都保持同一语义(当然也有例外,比如数字9和6的图片,进行180度旋转后可能导致语义错误),因此期望模型具有旋转不变性。但是表格型数据的每一列通常都是具有显著物理含义的,比如性别,年龄,收入,工作类型等等,对这些进行数据旋转,那么产出的特征将不具有任何物理含义了。
如Fig 5. (a)所示,在实验中将数据集的特征进行随机旋转,观察树模型和神经网络模型的测试结果。我们可以发现,基于Resnet的测试结果基本上没有任何变化,这证实了Resnet具有函数上的旋转不变性。而树模型GBT和随机森林均有大幅度的性能下降(~20%),由此我们可以得出结论,神经网络模型在处理特征的过程中,已经对特征进行了一定程度的旋转,因此在人工加入旋转干扰的情况下,神经网络的测试结果几乎不下降。而树模型无旋转不变性,当引入人工旋转干扰后,由于数据特征的物理含义完全被打乱了,因此性能大幅度下降。注意到一点,表格型数据中含有大量无信息量的特征,对数据进行的旋转操作,会直接导致有信息特征中混入无信息特征,从而影响特征效果。如Fig 5. (b)所示,当去掉不重要的特征后(即是按重要性排序的后50%特征),同样进行人工旋转干扰,我们发现树模型的结果下降得没有那么厉害了(~15%),这是因为无关特征被大量去除后,人工旋转干扰导致的无信息特征引入减少了。
Reference
[1]. Grinsztajn, Léo, Edouard Oyallon, and Gaël Varoquaux. "Why do tree-based models still outperform deep learning on tabular data?." arXiv preprint arXiv:2207.08815 (2022).
[2]. Fisher, Walter D. "On grouping for maximum homogeneity." Journal of the American statistical Association 53, no. 284 (1958): 789-798.
[3]. https://blog.csdn.net/LoseInVain/article/details/80339201, 《理解多维高斯分布》
[4]. Andrew Y. Ng. Feature selection, L 1 vs. L 2 regularization, and rotational invariance. In Twenty-First International Conference on Machine Learning - ICML ’04, page 78, Banff, Alberta, Canada, 2004. ACM Press. doi: 10.1145/1015330.1015435.